Re: [PATCH v9 2/6] KVM: x86: Virtualize CR4.LAM_SUP

From: Huang, Kai
Date: Tue Jun 06 2023 - 23:40:57 EST


On Tue, 2023-06-06 at 17:18 +0800, Binbin Wu wrote:
> Move CR4.LAM_SUP out of CR4_RESERVED_BITS and its reservation depends on vcpu
> supporting LAM feature or not. Leave the bit intercepted to avoid vmread every
> time when KVM fetches its value, with the expectation that guest won't toggle
> the bit frequently.

KVM only needs to do vmread once to cache guest's CR4, and presumable vmread is
a lot cheaper than a VMEXIT. So I don't see the value of intercepting it if
there's no need to do.

But presumably I think we cannot allow guest to own this bit because KVM wants
to return a valid CR4 if LAM isn't exposed to guest? Otherwise guest can still
set this bit even LAM isn't exposed to guest.

Am I missing something?

If not, your justification of intercepting this bit isn't correct and needs
update.