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 9a0f05b..5b750ed 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