Message ID | 20240809194335.1726916-1-seanjc@google.com (mailing list archive) |
---|---|
Headers | show |
Series | KVM: x86/mmu: Allow yielding on mmu_notifier zap | expand |
On Fri, 09 Aug 2024 12:43:12 -0700, Sean Christopherson wrote: > The main intent of this series is to allow yielding, i.e. cond_resched(), > when unmapping memory in shadow MMUs in response to an mmu_notifier > invalidation. There is zero reason not to yield, and in fact I _thought_ > KVM did yield, but because of how KVM grew over the years, the unmap path > got left behind. > > The first half of the series is reworks max_guest_memory_test into > mmu_stress_test, to give some confidence in the mmu_notifier-related > changes. > > [...] Applied the KVM proper changes to kvm-x86 mmu, sans the rmap locking stuff. I'll send a v2 for just the selftest changes, and probably put them in the dedicated selftests branch, as there is no actual dependency between the selftest and the mmu changes. [10/22] KVM: x86/mmu: Move walk_slot_rmaps() up near for_each_slot_rmap_range() https://github.com/kvm-x86/linux/commit/0a37fffda145 [11/22] KVM: x86/mmu: Plumb a @can_yield parameter into __walk_slot_rmaps() https://github.com/kvm-x86/linux/commit/5b1fb116e1a6 [12/22] KVM: x86/mmu: Add a helper to walk and zap rmaps for a memslot https://github.com/kvm-x86/linux/commit/dd9eaad744f4 [13/22] KVM: x86/mmu: Honor NEED_RESCHED when zapping rmaps and blocking is allowed https://github.com/kvm-x86/linux/commit/548f87f667a3 [14/22] KVM: x86/mmu: Morph kvm_handle_gfn_range() into an aging specific helper https://github.com/kvm-x86/linux/commit/c17f150000f6 [15/22] KVM: x86/mmu: Fold mmu_spte_age() into kvm_rmap_age_gfn_range() https://github.com/kvm-x86/linux/commit/7aac9dc680da [16/22] KVM: x86/mmu: Add KVM_RMAP_MANY to replace open coded '1' and '1ul' literals https://github.com/kvm-x86/linux/commit/7645829145a9 [18/22] KVM: x86/mmu: Use KVM_PAGES_PER_HPAGE() instead of an open coded equivalent https://github.com/kvm-x86/linux/commit/9a5bff7f5ec2 -- https://github.com/kvm-x86/linux/tree/next