All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@linux.vnet.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: "Andrea Arcangeli" <aarcange@redhat.com>,
	"Blue Swirl" <blauwirbel@gmail.com>,
	"Andreas Färber" <andreas.faerber@web.de>,
	"Michael Roth" <mdroth@linux.vnet.ibm.com>,
	"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory
Date: Wed, 05 Jan 2011 14:12:10 -0600	[thread overview]
Message-ID: <4D24D09A.9060204@linux.vnet.ibm.com> (raw)
In-Reply-To: <A595870E-5AB2-4539-986D-7B2827D831DF@suse.de>

On 01/05/2011 02:00 PM, Alexander Graf wrote:
> 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.
>    

Where it's really helpful is in the ever elusive configuration file 
format.  -mem becomes:

[mem]
size=1G
path=/dev/shm/vm1.ram
populate=on

Which is nice from a grouping perspective.

Regards,

Anthony Liguori

> Alex
>
>    

  reply	other threads:[~2011-01-05 20:12 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-15 17:08 [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory Andrea Arcangeli
2010-09-15 17:34 ` Alexander Graf
2010-09-15 17:37 ` Andreas Färber
2011-01-05 15:10   ` Andrea Arcangeli
2011-01-05 18:02     ` Michael Roth
2011-01-05 19:44       ` Alexander Graf
2011-01-05 19:54         ` Andrea Arcangeli
2011-01-05 20:00           ` Alexander Graf
2011-01-05 20:12             ` Anthony Liguori [this message]
2011-01-05 20:15             ` Andrea Arcangeli
2011-01-05 20:26           ` Michael Roth
2011-01-05 20:35             ` Andrea Arcangeli
2011-01-05 21:27               ` Michael Roth
2011-01-06 17:49                 ` Andrea Arcangeli
2011-01-06 20:49                   ` Michael Roth
2011-01-05 20:10         ` Anthony Liguori
2010-09-15 21:03 ` [Qemu-devel] " Michael S. Tsirkin
2010-09-16  6:51   ` Gleb Natapov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D24D09A.9060204@linux.vnet.ibm.com \
    --to=aliguori@linux.vnet.ibm.com \
    --cc=aarcange@redhat.com \
    --cc=agraf@suse.de \
    --cc=andreas.faerber@web.de \
    --cc=blauwirbel@gmail.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.