Commit d1476937 authored by Takuya Yoshikawa's avatar Takuya Yoshikawa Committed by Avi Kivity
Browse files

KVM: Remove test-before-set optimization for dirty bits



As Avi pointed out, testing bit part in mark_page_dirty() was important
in the days of shadow paging, but currently EPT and NPT has already become
common and the chance of faulting a page more that once per iteration is
small. So let's remove the test bit to avoid extra access.

Signed-off-by: default avatarTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 03909187
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1192,8 +1192,6 @@ void mark_page_dirty(struct kvm *kvm, gfn_t gfn)
	if (memslot && memslot->dirty_bitmap) {
		unsigned long rel_gfn = gfn - memslot->base_gfn;

		/* avoid RMW */
		if (!generic_test_le_bit(rel_gfn, memslot->dirty_bitmap))
		generic___set_le_bit(rel_gfn, memslot->dirty_bitmap);
	}
}