On 6/8/21 5:07 PM, Dan Williams wrote:
That works too, but I assume if ACPI_FLUSH_CPU_CACHE() itself is going to be changed rather than sprinkling protected_guest_has() checks in a few places it will need to assert why changing all of those at once is correct. Otherwise I expect Rafael to ask why this global change of the ACPI_FLUSH_CPU_CACHE() policy is ok.
Yes. I am fixing it as below. --- a/arch/x86/include/asm/acenv.h +++ b/arch/x86/include/asm/acenv.h @@ -10,10 +10,15 @@ #define _ASM_X86_ACENV_H #include <asm/special_insns.h> +#include <asm/protected_guest.h> /* Asm macros */ -#define ACPI_FLUSH_CPU_CACHE() wbinvd() +#define ACPI_FLUSH_CPU_CACHE() \ +do { \ + if (!prot_guest_has(PR_GUEST_DISABLE_WBINVD)) \ + wbinvd(); \ +} while (0) -- Sathyanarayanan Kuppuswamy Linux Kernel Developer