On Tue, 04 Apr 2023 17:23:59 -0700, Sean Christopherson wrote: > Extend VMX's nested intercept logic for emulated instructions to handle > "pause" interception, in quotes because KVM's emulator doesn't filter out > NOPs when checking for nested intercepts. Failure to allow emulation of > NOPs results in KVM injecting a #UD into L2 on any NOP that collides with > the emulator's definition of PAUSE, i.e. on all single-byte NOPs. > > For PAUSE itself, honor L1's PAUSE-exiting control, but ignore PLE to > avoid unnecessarily injecting a #UD into L2. Per the SDM, the first > execution of PAUSE after VM-Entry is treated as the beginning of a new > loop, i.e. will never trigger a PLE VM-Exit, and so L1 can't expect any > given execution of PAUSE to deterministically exit. > > [...] Applied to kvm-x86 vmx. I haven't gotten any reviews, but the FEP changes in KUT will cause the nVMX test to fail, so I want to get kvm-x86/next fixed sooner than later. I'm not expecting anything else for "vmx", so unwinding should be easy if it turns out this is busted/flawed. [1/1] KVM: nVMX: Emulate NOPs in L2, and PAUSE if it's not intercepted https://github.com/kvm-x86/linux/commit/84f481315b10 -- https://github.com/kvm-x86/linux/tree/next https://github.com/kvm-x86/linux/tree/fixes