[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory |
Date: |
Wed, 5 Jan 2011 21:00:45 +0100 |
On 05.01.2011, at 20:54, Andrea Arcangeli wrote:
> Hello everyone,
>
> On Wed, Jan 05, 2011 at 08:44:38PM +0100, Alexander Graf wrote:
>>
>> 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.
>
> I'm neutral... so feel free to decide what I should implement ;).
>
> One comment on combining -m ksm=off (or -mem_nomerge) with
> -mem-path. It seems unnecessary because ksm can't be turned on on
> VM_HUGETLB vmas (MADV_MERGEABLE will return -EINVAL) and mem-path only
> makes sense if used in combination with hugetlbfs (which sets
> VM_HUGETLB of course).
Sure, not all combinations make sense. But "-mem
size=1G,path=/dev/shm/vm1.ram,populate=on" would make sense, no? TPH should go
along the same lines here too. It'd just be a flag "tph" that defaults to on if
available.
That way we could also do all the sanity checks in a single place. I really
like the idea of combining memory management command line parameters into a
single option :). In the end I'd assume it's Anthony's call though.
Alex
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Andrea Arcangeli, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Michael Roth, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Alexander Graf, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Michael Roth, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Andrea Arcangeli, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Michael Roth, 2011/01/05
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Andrea Arcangeli, 2011/01/06
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Michael Roth, 2011/01/06
- Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory, Anthony Liguori, 2011/01/05