]> www.infradead.org Git - users/dwmw2/qemu.git/commitdiff
kqemu_set_notdirty() opt
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 21 Aug 2005 19:15:23 +0000 (19:15 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 21 Aug 2005 19:15:23 +0000 (19:15 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1560 c046a42c-6fe2-441c-8c8c-71466251a162

kqemu.c

diff --git a/kqemu.c b/kqemu.c
index 9a0f05b171db6591a7218eb53bc39bee94d47f56..5b750edd2291c47548df54cb4b91eb7e4dd80f6d 100644 (file)
--- a/kqemu.c
+++ b/kqemu.c
@@ -237,6 +237,9 @@ void kqemu_set_notdirty(CPUState *env, ram_addr_t ram_addr)
         fprintf(logfile, "kqemu_set_notdirty: addr=%08lx\n", ram_addr);
     }
 #endif
+    /* we only track transitions to dirty state */
+    if (phys_ram_dirty[ram_addr >> TARGET_PAGE_BITS] != 0xff)
+        return;
     if (nb_ram_pages_to_update >= KQEMU_MAX_RAM_PAGES_TO_UPDATE)
         nb_ram_pages_to_update = KQEMU_RAM_PAGES_UPDATE_ALL;
     else