Re: [PATCH v9 04/12] x86/mm: get INVLPGB count max from CPUID

From: Rik van Riel
Date: Mon Feb 10 2025 - 11:50:57 EST


On Mon, 2025-02-10 at 15:30 +0800, Vern Hao wrote:
> I do some test on my  Machine with AMD EPYC 7K83,  these patches work
> on my host,  but failed on my guest with qemu.
>
> in host, use lscpu cmd, you can see  invlpgb in flags,  but in guest
> no.
>
> So are you plan to support it in guest?

How exactly did it fail in the guest?

Did the guest simply not use INVLPGB because that
CPUID flag was not presented in the CPUID that
qemu shows to the guest, or did things crash somehow?

My understanding is that while INVLPGB can work
in guests, actually implementing that is a whole
other can of worms, and definitely not something
we should try to tackle at the same time as bare
metal support.

A TLB flush hypercall, with IRQ-less flushing on
the hypervisor side will probably get us 90% of
the way there, potentially with less overall
complexity than actually supporting INVLPGB in
the guest.

--
All Rights Reversed.