Re: [patch 13/31] x86/fpu: Move KVMs FPU swapping to FPU core

From: Paolo Bonzini
Date: Wed Oct 13 2021 - 02:26:47 EST


On 13/10/21 08:15, Liu, Jing2 wrote:
After KVM passthrough XFD to guest, when vmexit opening
irq window and KVM is interrupted, kernel softirq path can call
kernel_fpu_begin() to touch xsave state. This function does
XSAVES. If guest XFD[18] is 1, and with guest AMX state in register,
then guest AMX state is lost by XSAVES.

Yes, the host value of XFD (which is zero) has to be restored after vmexit. See how KVM already handles SPEC_CTRL.

Passthrough of XFD is only enabled after the guest has caused an #NM vmexit and the full XSAVE state has been dynamically allocated, therefore it is always possible to do an XSAVES even from atomic context.

Paolo