Revert "KVM: Avoid useless memory write when possible"
authorAvi Kivity <avi@qumranet.com>
Mon, 23 Jul 2007 15:33:14 +0000 (18:33 +0300)
committerAvi Kivity <avi@qumranet.com>
Wed, 25 Jul 2007 11:30:56 +0000 (14:30 +0300)
This reverts commit a3c870bdce4d34332ebdba7eb9969592c4c6b243.  While it
does save useless updates, it (probably) defeats the fork detector, causing
a massive performance loss.

Signed-off-by: Avi Kivity <avi@qumranet.com>
drivers/kvm/kvm_main.c

index 46efbe70801c920e8b026061f2981471605e013c..a8d8db8e3ccb1f24100f38d41d4c35cd54f56142 100644 (file)
@@ -1070,10 +1070,8 @@ static int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa,
                return 0;
        mark_page_dirty(vcpu->kvm, gpa >> PAGE_SHIFT);
        virt = kmap_atomic(page, KM_USER0);
-       if (memcmp(virt + offset_in_page(gpa), val, bytes)) {
-               kvm_mmu_pte_write(vcpu, gpa, virt + offset, val, bytes);
-               memcpy(virt + offset_in_page(gpa), val, bytes);
-       }
+       kvm_mmu_pte_write(vcpu, gpa, virt + offset, val, bytes);
+       memcpy(virt + offset_in_page(gpa), val, bytes);
        kunmap_atomic(virt, KM_USER0);
        return 1;
 }