The dirty and non-dirty pages are checked one by one.  When most of the memory
is not dirty, checking the dirty and non-dirty pages by multiple page size
should be much faster than checking them one by one.  We introduced bit-based
phys_ram_dirty for VGA, CODE, MIGRATION, MASTER, and
cpu_physical_memory_get_dirty_range() for this purpose.

This patch set is v2 based on the following discussion.

http://www.mail-archive.com/k...@vger.kernel.org/msg30722.html

I also rebased to qemu.git, but it needs the folloing patch set to be applied.

http://article.gmane.org/gmane.comp.emulators.qemu/66007

Yoshiaki Tamura (6):
  Modify DIRTY_FLAG value to use as indexes of bit-based
    phys_ram_dirty.
  Introduce bit-based phys_ram_dirty for VGA, CODE, MIGRATION and
    MASTER.
  Modifies wrapper functions for byte-based phys_ram_dirty bitmap to   
     bit-based phys_ram_dirty bitmap.
  Introduce cpu_physical_memory_get_dirty_range().
  Use cpu_physical_memory_set_dirty_range() to update phys_ram_dirty.
  Use cpu_physical_memory_get_dirty_range() to check multiple dirty
    pages.

 arch_init.c |   54 ++++++++++++++++++++------------
 bswap.h     |    2 +
 cpu-all.h   |   95 +++++++++++++++++++++++++++++++++++++++++++++++---------
 exec.c      |   98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 kvm-all.c   |   33 +++++++++-----------
 5 files changed, 222 insertions(+), 60 deletions(-)



Reply via email to