From: Matt Mackall <mpm@selenic.com>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: David Rientjes <rientjes@google.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Andrew Morton <akpm@linux-foundation.org>,
Pekka Enberg <penberg@cs.helsinki.fi>,
Paul Menage <menage@google.com>,
Randy Dunlap <randy.dunlap@oracle.com>,
linux-kernel@vger.kernel.org
Subject: Re: [patch -mm] cpusets: add memory_slab_hardwall flag
Date: Tue, 10 Mar 2009 16:08:03 -0500 [thread overview]
Message-ID: <1236719283.3205.24.camel@calx> (raw)
In-Reply-To: <alpine.DEB.1.10.0903101649330.20363@qirst.com>
On Tue, 2009-03-10 at 16:50 -0400, Christoph Lameter wrote:
> On Mon, 9 Mar 2009, David Rientjes wrote:
>
> > On Mon, 9 Mar 2009, Christoph Lameter wrote:
> >
> > > > On large NUMA machines, it is currently possible for a very large
> > > > percentage (if not all) of your slab allocations to come from memory that
> > > > is distant from your application's set of allowable cpus. Such
> > > > allocations that are long-lived would benefit from having affinity to
> > > > those processors. Again, this is the typical use case for cpusets: to
> > > > bind memory nodes to groups of cpus with affinity to it for the tasks
> > > > attached to the cpuset.
> > >
> > > Can you show us a real workload that suffers from this issue?
> > >
> >
> > We're more interested in the isolation characteristic, but that also
> > benefits large NUMA machines by keeping nodes free of egregious amounts of
> > slab allocated for remote cpus.
>
> So no real workload just some isolation idea.
>
> > > If you want to make sure that an allocation comes from a certain node then
> > > specifying the node in kmalloc_node() will give you what you want.
> > >
> >
> > That's essentially what the change does implicitly: it changes all
> > kmalloc() calls to kmalloc_node() for current->mems_allowed.
>
> Ok then you can use kmalloc_node?
Yes, he certainly could change every single kmalloc that a process might
ever reach to kmalloc_node. But I don't think that's optimal.
>
> > > The usage of kernel objects may not be cpuset specific. This is true for
> > > other objects than inode and dentries well.
> > >
> >
> > Yes, and that's why we require the cpuset hardwall on a configurable
> > per-cpuset basis. If a cpuset has set this option for its workload, then
> > it is demanding object allocations from local memory. Other cpusets that
> > do not have memory_slab_hardwall set can still allocate from any cpu slab
> > or partial slab, including those allocated for the hardwall cpuset.
>
> You cannot hardwall something that is used in a shared way by processes in
> multiple cpusets.
He can enforce that every allocation made when a given task is current
conforms. His patch demonstrates that.
--
http://selenic.com : development and support for Mercurial and Linux
next prev parent reply other threads:[~2009-03-10 21:10 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-08 16:27 [patch -mm] cpusets: add memory_slab_hardwall flag David Rientjes
2009-03-08 16:53 ` Paul Menage
2009-03-08 21:38 ` David Rientjes
2009-03-09 7:08 ` Paul Menage
2009-03-09 9:18 ` David Rientjes
2009-03-08 17:01 ` Matt Mackall
2009-03-08 21:51 ` David Rientjes
2009-03-09 4:49 ` KOSAKI Motohiro
2009-03-09 9:12 ` David Rientjes
2009-03-09 10:19 ` KOSAKI Motohiro
2009-03-09 20:26 ` David Rientjes
2009-03-09 21:14 ` Christoph Lameter
2009-03-09 21:31 ` David Rientjes
2009-03-10 20:50 ` Christoph Lameter
2009-03-10 21:08 ` Matt Mackall [this message]
2009-03-12 16:08 ` Christoph Lameter
2009-03-12 17:23 ` Matt Mackall
2009-03-10 22:12 ` Paul Menage
2009-03-12 15:51 ` Christoph Lameter
2009-03-09 18:50 ` Christoph Lameter
2009-03-09 20:13 ` David Rientjes
2009-03-10 1:35 ` KOSAKI Motohiro
2009-03-10 2:01 ` David Rientjes
2009-03-10 4:05 ` Matt Mackall
2009-03-10 4:26 ` David Rientjes
2009-03-12 1:03 ` Paul E. McKenney
2009-03-12 5:51 ` David Rientjes
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=1236719283.3205.24.camel@calx \
--to=mpm@selenic.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=menage@google.com \
--cc=penberg@cs.helsinki.fi \
--cc=randy.dunlap@oracle.com \
--cc=rientjes@google.com \
/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.