I reported recently that commit 26844fee6ade ("KVM: x86: never write to memory from kvm_vcpu_check_block()") broke delivery of a virtualized posted interrupt from an L1 vCPU to a halted L2 vCPU (see https://lore.kernel.org/all/20231207010302.2240506-1-jmattson@xxxxxxxxxx/). The test that exposed the regression is the final patch of this series. The others are prerequisites. It would make sense to add "vmx_posted_interrupts_test" to the set of tests to be run under the unit test name, "vmx_apicv_test," but that is non-trivial. The vmx_posted_interrupts_test requires "smp = 2," but I find that adding that to the vmx_apicv_tests causes virt_x2apic_mode_test to fail with: FAIL: x2apic - reading 0x310: x86/vmx_tests.c:2151: Assertion failed: (expected) == (actual) LHS: 0x0000000000000012 - 0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0001'0010 - 18 RHS: 0x0000000000000001 - 0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0000'0001 - 1 Expected VMX_VMCALL, got VMX_EXTINT. STACK: 406ef8 40725a 41299f 402036 403f59 4001bd I haven't investigated. Jim Mattson (1): nVMX: Enable x2APIC mode for virtual-interrupt delivery tests Marc Orr (Google) (3): nVMX: test nested "virtual-interrupt delivery" nVMX: test nested EOI virtualization nVMX: add self-IPI tests to vmx_basic_vid_test Oliver Upton (1): nVMX: add test for posted interrupts lib/x86/apic.h | 5 + lib/x86/asm/bitops.h | 8 + x86/unittests.cfg | 10 +- x86/vmx_tests.c | 423 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 445 insertions(+), 1 deletion(-) -- 2.43.0.472.g3155946c3a-goog