linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Rientjes <rientjes@google.com>
To: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>,
	Andrea Arcangeli <aarcange@redhat.com>,
	Andi Kleen <andi@firstfloor.org>, Rik van Riel <riel@redhat.com>,
	davidlohr@hp.com, isimatu.yasuaki@jp.fujitsu.com,
	yinghai@kernel.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH 4/4] hugetlb: add hugepages_node= command-line option
Date: Tue, 18 Feb 2014 14:16:42 -0800 (PST)	[thread overview]
Message-ID: <alpine.DEB.2.02.1402181407510.20772@chino.kir.corp.google.com> (raw)
In-Reply-To: <20140218123013.GA20609@amt.cnet>

On Tue, 18 Feb 2014, Marcelo Tosatti wrote:

> > Lacking from your entire patchset is a specific example of what you want 
> > to do.  So I think we're all guessing what exactly your usecase is and we 
> > aren't getting any help.  Are you really suggesting that a customer wants 
> > to allocate 4 1GB hugepages on node 0, 12 2MB hugepages on node 0, 6 1GB 
> > hugepages on node 1, 24 2MB hugepages on node 1, 2 1GB hugepages on node 
> > 2, 100 2MB hugepages on node 3, etc?  Please.
> 
> Customer has 32GB machine. He wants 8 1GB pages for his performance
> critical application on node0 (KVM guest), and other guests and
> pagecache etc. using the remaining 26GB of memory.
> 

Wow, is that it?  (This still doesn't present a clear picture since we 
don't know how much memory is on node 0, though.)

So Luiz's example of setting up different size hugepages on three 
different nodes requiring nine kernel command line parameters doesn't even 
have a legitimate usecase today.

Back to the original comment on this patchset, forgetting all this 
parameter parsing stuff, if you had the ability to free 1GB pages at 
runtime then your problem is already solved, correct?  If that 32GB 
machine has two nodes, then doing "hugepagesz=1G hugepages=16" will boot 
just fine and then an init script frees the 8 1GB pages on node1.

It gets trickier if there are four nodes and each node is 8GB.  Then you'd 
be ooming the machine if you did "hugepagesz=1G hugepages=32".  You could 
actually do "hugepagesz=1G hugepages=29" and free the hugepages on 
everything except for node 0, but I feel like movablecore= would be a 
better option.

So why not just work on making 1GB pages dynamically allocatable and 
freeable at runtime?  It feels like it would be a much more heavily used 
feature than a special command line parameter for a single customer.

> > If that's actually the usecase then I'll renew my objection to the 
> > entire patchset and say you want to add the ability to dynamically 
> > allocate 1GB pages and free them at runtime early in initscripts.  If 
> > something is going to be added to init code in the kernel then it 
> > better be trivial since all this can be duplicated in userspace if you 
> > really want to be fussy about it.
> 
> Not sure what is the point here. The command line interface addition
> being proposed is simple, is it not?
> 

You can't specify an interleave behavior with Luiz's command line 
interface so now we'd have two different interfaces for allocating 
hugepage sizes depending on whether you're specifying a node or not.  
It's "hugepagesz=1G hugepages=16" vs "hugepage_node=1:16:1G" (and I'd have 
to look at previous messages in this thread to see if that means 16 1GB 
pages on node 1 or 1 1GB pages on node 16.)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2014-02-18 22:16 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-14  1:02 [PATCH v2 0/4] " Luiz Capitulino
2014-02-14  1:02 ` [PATCH 1/4] memblock: memblock_virt_alloc_internal(): add __GFP_THISNODE flag support Luiz Capitulino
2014-02-14  1:02 ` [PATCH 2/4] memblock: add memblock_virt_alloc_nid_nopanic() Luiz Capitulino
2014-02-14  1:02 ` [PATCH 3/4] hugetlb: add parse_pagesize_str() Luiz Capitulino
2014-02-14  1:02 ` [PATCH 4/4] hugetlb: add hugepages_node= command-line option Luiz Capitulino
2014-02-14 23:14   ` David Rientjes
2014-02-15  3:58     ` Luiz Capitulino
2014-02-15 10:06       ` David Rientjes
2014-02-17 13:56         ` Luiz Capitulino
2014-02-17 23:23           ` David Rientjes
2014-02-18 12:30             ` Marcelo Tosatti
2014-02-18 22:16               ` David Rientjes [this message]
2014-02-20  2:22                 ` Marcelo Tosatti
2014-02-20  3:46                   ` David Rientjes
2014-02-20  4:42                     ` Luiz Capitulino
2014-02-20  4:51                       ` David Rientjes
2014-02-20 15:06                         ` Luiz Capitulino
2014-02-20 21:34                     ` Marcelo Tosatti
2014-02-20 23:15                       ` David Rientjes
2014-02-21  2:28                         ` Marcelo Tosatti
2014-02-21 10:07                           ` David Rientjes
2014-02-21 19:10                             ` Marcelo Tosatti
2014-02-21 22:04                               ` David Rientjes
2014-02-21 22:36                                 ` Andi Kleen
2014-02-21 22:44                                   ` David Rientjes
2014-02-21 22:55                                     ` Andi Kleen
2014-02-21  3:35                         ` Luiz Capitulino
2014-02-20 21:38                     ` Marcelo Tosatti
2014-02-20 23:17                       ` David Rientjes
2014-02-18  5:47         ` Davidlohr Bueso
2014-02-21 23:54           ` Andrew Morton
2014-02-22  4:03             ` Andi Kleen
2014-02-22  4:31               ` Davidlohr Bueso
2014-02-22  4:40               ` Andrew Morton

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=alpine.DEB.2.02.1402181407510.20772@chino.kir.corp.google.com \
    --to=rientjes@google.com \
    --cc=aarcange@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=davidlohr@hp.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=lcapitulino@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mtosatti@redhat.com \
    --cc=riel@redhat.com \
    --cc=yinghai@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox