Commit 6ba1e04f authored by Vipin Sharma's avatar Vipin Sharma Committed by Paolo Bonzini
Browse files

KVM: x86/mmu: Speed up slot_rmap_walk_next for sparsely populated rmaps



Avoid calling handlers on empty rmap entries and skip to the next non
empty rmap entry.

Empty rmap entries are noop in handlers.

Signed-off-by: default avatarVipin Sharma <vipinsh@google.com>
Suggested-by: default avatarSean Christopherson <seanjc@google.com>
Message-Id: <20220502220347.174664-1-vipinsh@google.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 3c5c3245
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1483,8 +1483,10 @@ static bool slot_rmap_walk_okay(struct slot_rmap_walk_iterator *iterator)

static void slot_rmap_walk_next(struct slot_rmap_walk_iterator *iterator)
{
	if (++iterator->rmap <= iterator->end_rmap) {
	while (++iterator->rmap <= iterator->end_rmap) {
		iterator->gfn += (1UL << KVM_HPAGE_GFN_SHIFT(iterator->level));

		if (iterator->rmap->val)
			return;
	}