Re: [RFC v2-fix-v3 1/1] x86/tdx: Skip WBINVD instruction for TDX guest

From: Kuppuswamy, Sathyanarayanan
Date: Tue Jun 08 2021 - 18:36:33 EST




On 6/8/21 3:17 PM, Dave Hansen wrote:
On 6/8/21 2:35 PM, Kuppuswamy Sathyanarayanan wrote:
Persistent memory is also currently not supported. Another code
path that uses WBINVD is the MTRR driver, but EPT/virtualization
always disables MTRRs so those are not needed. This all implies
WBINVD is not needed with current TDX.

It's one thing to declare something unsupported. It's quite another to
declare it unsupported and then back it up with code to ensure that any
attempted use is thwarted.

Only audited and supported drivers will be allowed to enumerate after
device filter support patch is merged. Till we merge that patch, If
any of these unsupported features (with WBINVD usage) are enabled in TDX,
it will lead to sigfault (due to unhandled #VE).

In this patch we only create exception for ACPI sleep driver code. If
commit log is confusing, I can remove information about other unsupported
feature (with WBINVD usage).


This patch certainly shows us half of the solution. But, to be
complete, we also need to see the other half: where is the patch or
documentation for why it is not *possible* to encounter persistent
memory in a TDX guest?

BTW, "persistent memory" is much more than Intel Optane DCPMM.


--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer