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: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
039091875c
commit
d14769377a
|
@ -1192,9 +1192,7 @@ 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);
|
||||
generic___set_le_bit(rel_gfn, memslot->dirty_bitmap);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue