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. Alex