On 04/06/2010 12:55 PM, Avi Kivity wrote:
Here is a microbenchmark demonstrating the hit (non-virtualized); it
simulates a pointer-chasing application with a varying working set.
It is easy to see when the working set overflows the various caches,
and later when the page tables overflow the caches. For
virtualization the hit will be a factor of 3 instead of 2, and will
come earlier since the page tables are bigger.
And here is the same thing with guest latencies as well:
Random memory read latency, in nanoseconds, according to working
set and page size.
------- host ------ ------------- guest -----------
--- hpage=4k --- -- hpage=2M -
size 4k 2M 4k/4k 2M/4k 4k/2M 2M/2M
4k 4.9 4.9 5.0 4.9 4.9 4.9
16k 4.9 4.9 5.0 4.9 5.0 4.9
64k 7.6 7.6 7.9 7.8 7.8 7.8
256k 15.1 8.1 15.9 10.3 15.4 9.0
1M 28.5 23.9 29.3 37.9 29.3 24.6
4M 31.8 25.3 37.5 42.6 35.5 26.0
16M 94.8 79.0 110.7 107.3 92.0 77.3
64M 260.9 224.2 294.2 247.8 251.5 207.2
256M 269.8 248.8 313.9 253.1 260.1 230.3
1G 278.1 246.3 331.8 273.0 269.9 236.7
4G 330.9 252.6 545.6 346.0 341.6 256.5
16G 436.3 243.8 705.2 458.3 463.9 268.8
64G 486.0 253.3 767.3 532.5 516.9 274.7
It's easy to see how cache effects dominate the tlb walk. The only way
hardware can reduce this is by increasing cache sizes dramatically.
--
error compiling committee.c: too many arguments to function
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>