On Thu, Jun 01, 2023 at 06:15:15PM -0700, Sean Christopherson wrote: > Convert VMX's handling of mmu_notifier invalidations of the APIC-access page > from invalidate_range() to KVM's standard invalidate_range_{start,end}(). > > KVM (ab)uses invalidate_range() to fudge around not stalling vCPUs until > relevant in-flight invalidations complete. Abusing invalidate_range() works, > but it requires one-off code in KVM, sets a bad precedent in KVM, and is > blocking improvements to mmu_notifier's definition of invalidate_range() > due to KVM's usage diverging wildly from the original intent of notifying > IOMMUs of changes to shared page tables. > > Clean up the mess by hooking x86's implementation of kvm_unmap_gfn_range() > and stalling vCPUs by re-requesting KVM_REQ_APIC_PAGE_RELOAD until the > invalidation completes. I don't know much about kvm, but this looks like what I had in mind and is a good way to use mmu notifiers Thanks, Jason