Messages in this thread | | | Subject | Re: [RFC v2-fix-v4 1/1] x86/tdx: Skip WBINVD instruction for TDX guest | From | "Kuppuswamy, Sathyanarayanan" <> | Date | Tue, 8 Jun 2021 20:56:27 -0700 |
| |
On 6/8/21 8:40 PM, Dan Williams wrote: > ..."KVM gets away with it" is not a justification that TDX can stand > on otherwise we would not be here fixing up ACPICA properly. > > How about: > > "TDX guests use standard ACPI mechanisms to signal sleep state entry > (including reboot) to the host. The ACPI specification mandates WBINVD > on any sleep state entry with the expectation that the platform is > only responsible for maintaining the state of memory over sleep > states, not preserving dirty data in any CPU caches. ACPI cache > flushing requirements pre-date the advent of virtualization. Given TDX > guest sleep state entry does not affect any host power rails it is not > required to flush caches. The host is responsible for maintaining > cache state over its own bare metal sleep state transitions that > power-off the cache. If the host fails to manage caches over its sleep > state transitions the guest..."
> > I don't know how to finish the last sentence. What does TDX do if it > is resumed after host suspend and the host somehow arranged for dirty > TDX lines to be lost.
TDX guest does not support S3. It will be disabled in ACPI tables. It is a TDX firmware spec requirement. Please check the following spec, sec 2.1
https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-virtual-firmware-design-guide-rev-1.pdf
In TDX guest, we encounter cache flushes only in shutdown and reboot path. So there is no resume path.
Will that be noticed by TDX integrity > mechanisms? I did not immediately find an answer to this with a brief > look at the specs.
-- Sathyanarayanan Kuppuswamy Linux Kernel Developer
| |