Messages in this thread | | | From | Dan Williams <> | Date | Thu, 17 Mar 2022 08:32:39 -0700 | Subject | Re: [PATCHv6 29/30] ACPICA: Avoid cache flush inside virtual machines |
| |
On Wed, Mar 16, 2022 at 3:13 PM Dave Hansen <dave.hansen@intel.com> wrote: > > On 3/15/22 19:08, Kirill A. Shutemov wrote: > > While running inside virtual machine, the kernel can bypass cache > > flushing. Changing sleep state in a virtual machine doesn't affect the > > host system sleep state and cannot lead to data loss. > > > > Before entering sleep states, the ACPI code flushes caches to prevent > > data loss using the WBINVD instruction. This mechanism is required on > > bare metal. > > > > But, any use WBINVD inside of a guest is worthless. Changing sleep > > state in a virtual machine doesn't affect the host system sleep state > > and cannot lead to data loss, so most hypervisors simply ignore it. > > Despite this, the ACPI code calls WBINVD unconditionally anyway. > > It's useless, but also normally harmless. > > > > In TDX guests, though, WBINVD stops being harmless; it triggers a > > virtualization exception (#VE). If the ACPI cache-flushing WBINVD > > were left in place, TDX guests would need handling to recover from > > the exception. > > > > Avoid using WBINVD whenever running under a hypervisor. This both > > removes the useless WBINVDs and saves TDX from implementing WBINVD > > handling. > > Looks good. Did you have more acks on this earlier that got removed? I > thought I remembered more acks on earlier versions. > > Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Yeah, my previous reviewed-by still stands:
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
| |