Re: [PATCH v3 05/10] KVM: TDX: restore host xsave state when exit from the guest TD
From: Paolo Bonzini
Date: Thu Mar 13 2025 - 14:18:21 EST
On Thu, Mar 13, 2025 at 4:17 AM Xiaoyao Li <xiaoyao.li@xxxxxxxxx> wrote:
>
> 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.
Ah, I didn't include that because it's just information from the TDX
module documentation.
Paolo