Re: [PATCH v3 05/10] KVM: TDX: restore host xsave state when exit from the guest TD

From: Xiaoyao Li
Date: Wed Mar 12 2025 - 23:17:40 EST


On 3/12/2025 7:36 PM, Paolo Bonzini wrote:
On Mon, Mar 10, 2025 at 8:24 AM Xiaoyao Li <xiaoyao.li@xxxxxxxxx> wrote:

On 3/8/2025 5:20 AM, Paolo Bonzini wrote:
From: Isaku Yamahata <isaku.yamahata@xxxxxxxxx>

On exiting from the guest TD, xsave state is clobbered; restore it.

I prefer the implementation as this patch, which is straightforward.
(I would be much better if the changelog can describe more)

Ok:

Do not use kvm_load_host_xsave_state(), as it relies on vcpu->arch
to find out whether other KVM_RUN code has loaded guest state into
XCR0/PKRU/XSS or not. In the case of TDX, the exit values are known
independent of the guest CR0 and CR4, and in fact the latter are not
available.

In fact, I expected some description of how xsave state is clobbered and what value of them after TD exit.

After return from TDH.VP.ENTER, XCR0 is set to TD's user-mode feature
bits of XFAM and MSR_IA32_XSS is set to TD's supervisor-mode feature
bits of XFAM. PKRU keeps unchanged if the TD is not exposed with PKU
in XFAM or PKRU is set to 0 when XFAM.PKE(bit 9) is 1.

If the changelog has the description of TDX module, it indeed can help people understand the code.

Thanks!

Paolo