qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/6] qemu-kvm: Introduce bit-based phys_ram_dirty, and bit-based dirty page checker.
@ 2010-03-16 10:53 Yoshiaki Tamura
  2010-03-16 10:53 ` [Qemu-devel] [PATCH 1/6] qemu-kvm: Introduce bit-based phys_ram_dirty for VGA, CODE and MIGRATION Yoshiaki Tamura
                   ` (6 more replies)
  0 siblings, 7 replies; 28+ messages in thread
From: Yoshiaki Tamura @ 2010-03-16 10:53 UTC (permalink / raw)
  To: kvm, qemu-devel; +Cc: ohmura.kei, avi


The dirty and non-dirty pages are checked one by one in vl.c.
When the 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 and MIGRATION, and
cpu_physical_memory_get_dirty_range() for this purpose.

This patch is based on the following discussion.

http://www.mail-archive.com/kvm@vger.kernel.org/msg28733.html

To prove our prospect, we have evaluated effect of this patch.
We compared runtime of ram_save_remaining with original 
ram_save_remaining() and ram_save_remaining() using functions of this patch.

Test Environment:
CPU: 4x Intel Xeon Quad Core 2.66GHz
Mem size: 96GB
kvm version: 2.6.33
qemu-kvm version: commit 2b644fd0e737407133c88054ba498e772ce01f27

Host OS: CentOS (kernel 2.6.33)
Guest OS: Debian/GNU Linux lenny (kernel 2.6.26)
Guest Mem size: 512MB

Conditions of experiments are as follows:
Cond1: Guest OS periodically makes the 256MB continuous dirty pages.
Cond2: Guest OS periodically makes the 256MB dirty pages and non-dirty pages
in turn.
Cond3: Guest OS read 1GB file, which is bigger than memory.
Cond4: Guest OS write 1GB file, which is bigger than memory.

Experimental results:
Cond1: 1.9 ~ 61 times speed up
Cond2: 1.9 ~ 56 times speed up
Cond3: 1.9 ~ 59 times speed up
Cond4: 1.7 ~ 59 times speed up

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2010-03-17 16:28 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-16 10:53 [Qemu-devel] [PATCH 0/6] qemu-kvm: Introduce bit-based phys_ram_dirty, and bit-based dirty page checker Yoshiaki Tamura
2010-03-16 10:53 ` [Qemu-devel] [PATCH 1/6] qemu-kvm: Introduce bit-based phys_ram_dirty for VGA, CODE and MIGRATION Yoshiaki Tamura
2010-03-16 12:26   ` [Qemu-devel] " Avi Kivity
2010-03-16 13:01     ` Yoshiaki Tamura
2010-03-16 13:04       ` Avi Kivity
2010-03-16 10:53 ` [Qemu-devel] [PATCH 2/6] qemu-kvm: Modify and introduce wrapper functions to access phys_ram_dirty Yoshiaki Tamura
2010-03-16 12:45   ` [Qemu-devel] " Avi Kivity
2010-03-16 13:17     ` Yoshiaki Tamura
2010-03-16 13:29       ` Avi Kivity
2010-03-16 13:49         ` Yoshiaki Tamura
2010-03-16 13:51         ` Anthony Liguori
2010-03-16 13:57           ` Avi Kivity
2010-03-16 14:50             ` Anthony Liguori
2010-03-16 20:10               ` Blue Swirl
2010-03-16 22:31                 ` Richard Henderson
2010-03-17  0:05                   ` Paul Brook
2010-03-17  4:07                 ` Avi Kivity
2010-03-17 16:06                   ` Paul Brook
2010-03-17 16:28                     ` Avi Kivity
2010-03-16 13:35     ` Anthony Liguori
2010-03-16 22:50       ` Yoshiaki Tamura
2010-03-16 10:53 ` [Qemu-devel] [PATCH 3/6] qemu-kvm: Replace direct phys_ram_dirty access with wrapper functions Yoshiaki Tamura
2010-03-16 10:53 ` [Qemu-devel] [PATCH 4/6] qemu-kvm: Introduce cpu_physical_memory_get_dirty_range() Yoshiaki Tamura
2010-03-16 12:47   ` [Qemu-devel] " Avi Kivity
2010-03-16 10:53 ` [Qemu-devel] [PATCH 5/6] qemu-kvm: Use cpu_physical_memory_set_dirty_range() to update phys_ram_dirty Yoshiaki Tamura
2010-03-16 10:53 ` [Qemu-devel] [PATCH 6/6] qemu-kvm: Use cpu_physical_memory_get_dirty_range() to check multiple dirty pages Yoshiaki Tamura
2010-03-16 13:11 ` [Qemu-devel] Re: [PATCH 0/6] qemu-kvm: Introduce bit-based phys_ram_dirty, and bit-based dirty page checker Avi Kivity
2010-03-16 13:41   ` Yoshiaki Tamura

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).