On Tue, Dec 07 2021 at 19:03, Yang Zhong wrote: > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > > Guest may toggle IA32_XFD in high frequency as it is part of the fpstate > information (features, sizes, xfd) and swapped in task context switch. > > To minimize the trap overhead of writes to this MSR, one optimization > is to allow guest direct write thus eliminate traps. However MSR > passthrough implies that guest_fpstate::xfd and per-cpu xfd cache might > be out of sync with the current IA32_XFD value by the guest. > > This suggests KVM needs to re-sync guest_fpstate::xfd and per-cpu cache > with IA32_XFD before the vCPU thread might be preempted or interrupted. > > This patch provides a helper function for the re-sync purpose. Provide a .... > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Jing Liu <jing2.liu@xxxxxxxxx> > Signed-off-by: Yang Zhong <yang.zhong@xxxxxxxxx> > --- > (To Thomas): the original name kvm_update_guest_xfd_state() in > your sample code is renamed to xfd_sync_state() in this patch. In > concept it is a general helper to bring software values in-sync with > the MSR value after they become out-of-sync. KVM is just the > first out-of-sync usage on this helper, so a neutral name may make > more sense. But if you prefer to the original name we can also > change back. There is no need for a general helper, really. It's KVM specific and should go into KVM section in core.c next to the other thing vs. the XFD update. Thanks, tglx