On Fri, 16 May 2025 14:35:34 -0700, Sean Christopherson wrote: > Fix issues with dirty ring harvesting where KVM doesn't bound the processing > of entries in any way, which allows userspace to keep KVM in a tight loop > indefinitely. > > E.g. > > struct kvm_dirty_gfn *dirty_gfns = vcpu_map_dirty_ring(vcpu); > > [...] Applied to kvm-x86 dirty_ring, thanks! [1/6] KVM: Bound the number of dirty ring entries in a single reset at INT_MAX https://github.com/kvm-x86/linux/commit/530a8ba71b4c [2/6] KVM: Bail from the dirty ring reset flow if a signal is pending https://github.com/kvm-x86/linux/commit/49005a2a3d2a [3/6] KVM: Conditionally reschedule when resetting the dirty ring https://github.com/kvm-x86/linux/commit/1333c35c4eea [4/6] KVM: Check for empty mask of harvested dirty ring entries in caller https://github.com/kvm-x86/linux/commit/ee188dea1677 [5/6] KVM: Use mask of harvested dirty ring entries to coalesce dirty ring resets https://github.com/kvm-x86/linux/commit/e46ad851150f [6/6] KVM: Assert that slots_lock is held when resetting per-vCPU dirty rings https://github.com/kvm-x86/linux/commit/614fb9d1479b -- https://github.com/kvm-x86/kvm-unit-tests/tree/next