This patch set aims to fix a race condition between posted interrupt delivery and migration for a nested VM. In particular, we proves that when a nested vCPU is halted and just migrated, it will lose a posted interrupt from another vCPU in the same VM. Changelog: v1 -> v2: - Replace the original vmcs12 bug fix patch into one that processes nested state pages request in a common function [paolo]. - Update the commit messages [seanjc, oupton]. - Remove vcpu_run_interruptable(), use __vcpu_run() instead [seanjc]. - Fix format issue in prepare_posted_intr_desc() [seanjc]. - Rebase to kvm/queue. v1 link: - https://lore.kernel.org/lkml/20220802230718.1891356-6-mizhang@xxxxxxxxxx/t/ Jim Mattson (1): KVM: selftests: Test if posted interrupt delivery race with migration Mingwei Zhang (3): KVM: x86: move the event handling of KVM_REQ_GET_VMCS12_PAGES into a common function KVM: selftests: Save/restore vAPIC state in migration tests KVM: selftests: Add support for posted interrupt handling in L2 arch/x86/kvm/x86.c | 29 +- tools/testing/selftests/kvm/.gitignore | 1 + tools/testing/selftests/kvm/Makefile | 1 + .../selftests/kvm/include/kvm_util_base.h | 10 + .../selftests/kvm/include/x86_64/processor.h | 1 + .../selftests/kvm/include/x86_64/vmx.h | 10 + .../selftests/kvm/lib/x86_64/processor.c | 2 + tools/testing/selftests/kvm/lib/x86_64/vmx.c | 14 + .../kvm/x86_64/vmx_migrate_pi_pending.c | 291 ++++++++++++++++++ 9 files changed, 353 insertions(+), 6 deletions(-) create mode 100644 tools/testing/selftests/kvm/x86_64/vmx_migrate_pi_pending.c base-commit: 372d07084593dc7a399bf9bee815711b1fb1bcf2 -- 2.37.2.672.g94769d06f0-goog