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