Re: [PATCH v4 1/1] x86/tdx: Handle MWAIT, MONITOR and WBINVD

From: Dave Hansen
Date: Wed Mar 31 2021 - 23:50:05 EST


On 3/31/21 8:28 PM, Andi Kleen wrote:
>> The hardware (and VMMs and SEAM) have ways of telling the guest kernel
>> what is supported: CPUID. If it screws up, and the guest gets an
>> unexpected #VE, so be it.
> The main reason for disabling stuff is actually that we don't need
> to harden it. All these things are potential attack paths.

Wait, MWAIT is an attack path? If it were an attack path, wouldn't it
be an attack path that was created from the SEAM layer or the hardware
being broken? Aren't those two things within the trust boundary? Do we
harden against other things within the trust boundary?

>> We don't have all kinds of crazy handling in the kernel's #UD handler
>> just in case a CPU mis-enumerates a feature and we get a #UD. We have
>> to trust the underlying hardware to be sane. If it isn't, we die a
>> horrible death as fast as possible. Why should TDX be any different?
> That's what the original patch did -- no unnecessary checks -- but reviewers
> keep asking for the extra checks, so Sathya added more. We have the not
> unusual problem here that reviewers don't agree among themselves.

Getting consensus is a pain in the neck, eh?

It's too bad all the reviewers in the community aren't like all of the
engineers at big companies where everyone always agrees. :)