KVM: WARN if there are dangling MMU invalidations at VM destruction
authorSean Christopherson <seanjc@google.com>
Fri, 27 Oct 2023 18:21:46 +0000 (11:21 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 13 Nov 2023 10:29:08 +0000 (05:29 -0500)
commitd497a0fab8b8457214fcc9b1a39530920ea7e95e
treef8260d5cb2a8f2edb62961ef3f82f6d29c3ab4a2
parent8569992d64b8f750e34b7858eac5d7daaf0f80fd
KVM: WARN if there are dangling MMU invalidations at VM destruction

Add an assertion that there are no in-progress MMU invalidations when a
VM is being destroyed, with the exception of the scenario where KVM
unregisters its MMU notifier between an .invalidate_range_start() call and
the corresponding .invalidate_range_end().

KVM can't detect unpaired calls from the mmu_notifier due to the above
exception waiver, but the assertion can detect KVM bugs, e.g. such as the
bug that *almost* escaped initial guest_memfd development.

Link: https://lore.kernel.org/all/e397d30c-c6af-e68f-d18e-b4e3739c5389@linux.intel.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Message-Id: <20231027182217.3615211-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
virt/kvm/kvm_main.c