On 05.01.2011, at 19:02, Michael Roth wrote:
On 01/05/2011 09:10 AM, Andrea Arcangeli wrote:
The bug is still there so I rediffed the old patch against current
code.
On a related topic: could somebody give me advice on how to implement
a command line (command line seems enough, the other option would be
monitor command) to make the MADV_MERGEABLE conditional? I got KSM on
THP working fine but KSM may decrease performance by increasing the
number of copy on write and by splitting hugepages, so we'd like to be
able to turn off KSM on a per-VM basis (not on the whole host, which
of course we already can by setting /sys/kernel/mm/ksm/run to 0) so
that high perf VMs will keep running at maximum speed with KSM off but
others may still benefit from KSM. For that I need to make the below
MADV_MERGEABLE madvise conditional to something and the code itself
will be trivial, we've just to converge on a command line option
(hopefully quickly ;).
There was a -mem_prealloc option added a while back to set MAP_POPULATE on
memory mapped in via the -mem-path option. So an analogous -mem_nomerge option
or something along that line seems reasonable for conditionally unsetting
QEMU_MADV_MERGEABLE.
And for consistency you should probably make both your proposed changes for
-mem-path'd memory as well.
Why not clean up all that mess and introduce a new -mem option that would just
take all of the several options as parameters?
-mem size=512,populate=on,ksm=off
and default -m to something reasonable with the new syntax.