Re: [PATCH v2 1/1] x86/tdx: Handle MWAIT, MONITOR and WBINVD
From: Dave Hansen
Date: Mon Mar 29 2021 - 18:03:30 EST
On 3/29/21 2:55 PM, Kuppuswamy, Sathyanarayanan wrote:
>>
>> MONITOR is a privileged instruction, right? So we can only end up in
>> here if the kernel screws up and isn't reading CPUID correctly, right?
>>
>> That dosen't seem to me like something we want to suppress. This needs
>> a warning, at least. I assume that having a MONITOR instruction
>> immediately return doesn't do any harm.
> Agree. Since we are not supposed to come here, I will use BUG.
"This is unexpected" is a WARN()able offense.
"This is unexpected and might be corrupting data" is where we want to
use BUG().
Does broken MONITOR risk data corruption?
>>> + case EXIT_REASON_MWAIT_INSTRUCTION:
>>> + /* MWAIT is supressed, not supposed to reach here. */
>>> + WARN(1, "MWAIT unexpected #VE Exception\n");
>>> + return -EFAULT;
>>
>> How is MWAIT "supppressed"?
> I am clearing the MWAIT feature flag in early init code. We should also
> disable this feature in firmware. setup_clear_cpu_cap(X86_FEATURE_MWAIT);
I'd be more explicit about that. Maybe even reference the code that
clears the X86_FEATURE.