On Fri, 31 Jan 2025 17:55:07 -0800, Sean Christopherson wrote: > Fix a variety of bugs related to emulating instructions on behalf of L2, > and (finally) add support for synthesizing nested VM-Exit to L1 when L1 > wants to intercept an instruction (KVM currently injects a #UD into L2). > > There's no real motivation behind this series. I spotted the PAUSE_EXITING > vs. BUS_LOCK_DETECTION goof when sorting out a report/question about HLT > emulation in L2 doing weird things, and then stupidly thought "how hard can > it be to generate a VM-Exit?". Turns out, not that hard, but definitely > a bit harder than I was anticipating due to the annoying RIP vs. next RIP > flaw. > > [...] Applied to kvm-x86 misc, thanks! [01/11] KVM: nVMX: Check PAUSE_EXITING, not BUS_LOCK_DETECTION, on PAUSE emulation https://github.com/kvm-x86/linux/commit/f002a97ec8c9 [02/11] KVM: nSVM: Pass next RIP, not current RIP, for nested VM-Exit on emulation https://github.com/kvm-x86/linux/commit/c8e612bfedff [03/11] KVM: nVMX: Allow emulating RDPID on behalf of L2 https://github.com/kvm-x86/linux/commit/3244616aac8d [04/11] KVM: nVMX: Emulate HLT in L2 if it's not intercepted https://github.com/kvm-x86/linux/commit/f43f7a215af0 [05/11] KVM: nVMX: Consolidate missing X86EMUL_INTERCEPTED logic in L2 emulation https://github.com/kvm-x86/linux/commit/08e3d89eb330 [06/11] KVM: x86: Plumb the src/dst operand types through to .check_intercept() https://github.com/kvm-x86/linux/commit/407d03fe924c [07/11] KVM: x86: Plumb the emulator's starting RIP into nested intercept checks https://github.com/kvm-x86/linux/commit/9aeb9d8a6738 [08/11] KVM: x86: Add a #define for the architectural max instruction length https://github.com/kvm-x86/linux/commit/d4aea23fd0ff [09/11] KVM: nVMX: Allow the caller to provide instruction length on nested VM-Exit https://github.com/kvm-x86/linux/commit/fbd1e0f19546 [10/11] KVM: nVMX: Synthesize nested VM-Exit for supported emulation intercepts https://github.com/kvm-x86/linux/commit/79a14afc6090 [11/11] KVM: selftests: Add a nested (forced) emulation intercept test for x86 https://github.com/kvm-x86/linux/commit/2428865bf0af -- https://github.com/kvm-x86/linux/tree/next