Re: [PATCH v2] KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk

Sean Christopherson <[email protected]> Fri, 31 Jul 2026 13:10:03 -0700
Newsgroups org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <[email protected]>
On Mon, 20 Jul 2026 13:45:49 -0400, Phil Rosenthal wrote:
> __kvm_rmap_lock() deliberately elides the rmap lock when it observes an
> empty rmap.  In that case kvm_rmap_lock_readonly() also re-enables
> preemption and returns zero, so the caller holds neither the rmap lock
> nor a preemption reference.  The elision documents the invariant it
> relies on:
> 
> 	 * Elide the lock if the rmap is empty, as lockless walkers (read-only
> 	 * mode) don't need to (and can't) walk an empty rmap, nor can they add
> 	 * entries to the rmap.  I.e. the only paths that process empty rmaps
> 	 * do so while holding mmu_lock for write, and are mutually exclusive.
> 
> [...]

Applied to kvm-x86 mmu, thanks!

[1/1] KVM: x86/mmu: Consume the locked rmap value in the lockless rmap walk
      https://github.com/kvm-x86/linux/commit/e428f9779a43

--
https://github.com/kvm-x86/linux/tree/next