Hi,

Here are some numbers on bit-based phys_ram_dirty.

Test Environment:
CPU: 4x Intel Xeon Quad Core 2.66GHz
Mem size: 96GB

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: 5 ~ 83 times speed up
Cond2: 5 ~ 52 times speed up
Cond3: 5 ~ 132 times speed up
Cond4: 5 ~ 57 times speed up

The speed up grows when the number of rows, whose contents are 0, gets larger.

Thanks,

Yoshi

Avi Kivity wrote:
On 04/20/2010 06:40 AM, Yoshiaki Tamura wrote:
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.

Looks good.




Reply via email to