linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: linux-mm@kvack.org, linux-numa@vger.kernel.org,
	akpm@linux-foundation.org, Mel Gorman <mel@csn.ul.ie>,
	Randy Dunlap <randy.dunlap@oracle.com>,
	Nishanth Aravamudan <nacc@us.ibm.com>,
	David Rientjes <rientjes@google.com>, Adam Litke <agl@us.ibm.com>,
	Andy Whitcroft <apw@canonical.com>,
	eric.whitney@hp.com
Subject: Re: [PATCH 11/11] hugetlb:  offload per node attribute registrations
Date: Tue, 06 Oct 2009 13:57:11 -0400	[thread overview]
Message-ID: <1254851831.13943.86.camel@useless.americas.hpqcorp.net> (raw)
In-Reply-To: <20091006164611.GW1656@one.firstfloor.org>

On Tue, 2009-10-06 at 18:46 +0200, Andi Kleen wrote:
> On Tue, Oct 06, 2009 at 12:28:49PM -0400, Lee Schermerhorn wrote:
> > On Tue, 2009-10-06 at 18:01 +0200, Andi Kleen wrote:
> > > On Mon, Oct 05, 2009 at 11:19:24PM -0400, Lee Schermerhorn wrote:
> > > > [PATCH 11/11] hugetlb:  offload [un]registration of sysfs attr to worker thread
> > > > 
> > > > Against:  2.6.31-mmotm-090925-1435
> > > > 
> > > > New in V6
> > > > 
> > > > V7:  + remove redundant check for memory{ful|less} node from 
> > > >        node_hugetlb_work().  Rely on [added] return from
> > > >        hugetlb_register_node() to differentiate between transitions
> > > >        to/from memoryless state.
> > > > 
> > > > This patch offloads the registration and unregistration of per node
> > > > hstate sysfs attributes to a worker thread rather than attempt the
> > > > allocation/attachment or detachment/freeing of the attributes in 
> > > > the context of the memory hotplug handler.
> > > 
> > > Why this change? The hotplug handler should be allowed to sleep, shouldn't it?
> > 
> > Andy:  perhaps it can.  I'm not familiar with hotplug, so I followed a
> > pattern found elsewhere.  I created a separate patch in case someone
> > familiar with this area says I don't need it.
> 
> At least ACPI already puts it on a work queue.

Well, maybe we don't need it then.

> 
> > > 
> > > > N.B.,  Only tested build, boot, libhugetlbfs regression.
> > > >        i.e., no memory hotplug testing.
> > > 
> > > Yes, you have to because I know for a fact it's broken (outside your code) :)
> > 
> > We need to be able to remove all memory from a node without that node
> > disappearing [as I think it does on x86_64] to even exercise this code.
> 
> Are you sure? x86-64 doesn't support full node hotplug afaik.

I'll have to look.  At boot time on x86, we hide any memoryless nodes by
assigning their cpus to other nodes [currently just "round robin", but I
think this needs to change to distance based].  I recall seeing a memory
hotplug handler that moves the cpus when a node becomes memoryless.  If
it then unregisters the node [again, have to look.  no time now :(], the
earlier patches handle [un]registration of the per node attributes.  The
subject code only gets triggered if we have a node that becomes
memoryless as a result of hot remove but remains registered or that
starts memoryless and has memory hot-added. 


> 
> > I think some ia64 platforms can do that, perhaps others.
> 
> I've been thinking  about adding a hotadd regression test at boot time that
> only adds memory to nodes later after boot. That would at least test hotadd
> (and hot-removal is dubious anyways). 
> 
> That wouldn't be real node hotadd, but at least memory hotadd of all 
> to a node (which doesn't work currently)

That would be useful for testing the last 3 patches in the series, if
memoryless nodes can exist.  Otherwise, the per node attributes will
just come and go with the node itself.

> 
> -Andi
> 
> P.S.: You can add Reviewed-by for me to the other patches if you want.
> 

Thanks.  will do!

--
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:[~2009-10-06 17:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-06  3:17 [PATCH 0/11] hugetlb: V9 numa control of persistent huge pages alloc/free Lee Schermerhorn
2009-10-06  3:17 ` [PATCH 1/11] hugetlb: rework hstate_next_node_* functions Lee Schermerhorn
2009-10-06  3:17 ` [PATCH 2/11] hugetlb: add nodemask arg to huge page alloc, free and surplus adjust fcns Lee Schermerhorn
2009-10-06  9:09   ` David Rientjes
2009-10-07  3:26   ` David Rientjes
2009-10-07 14:13     ` Lee Schermerhorn
2009-10-06  3:17 ` [PATCH 3/11] hugetlb: factor init_nodemask_of_node Lee Schermerhorn
2009-10-07  3:21   ` David Rientjes
2009-10-06  3:18 ` [PATCH 4/11] hugetlb: derive huge pages nodes allowed from task mempolicy Lee Schermerhorn
2009-10-07  3:26   ` David Rientjes
2009-10-07 16:30     ` Lee Schermerhorn
2009-10-07 20:09       ` David Rientjes
2009-10-06  3:18 ` [PATCH 5/11] hugetlb: accomodate reworked NODEMASK_ALLOC Lee Schermerhorn
2009-10-06  3:18 ` [PATCH 6/11] hugetlb: add generic definition of NUMA_NO_NODE Lee Schermerhorn
2009-10-06  9:28   ` David Rientjes
2009-10-06  3:18 ` [PATCH 7/11] hugetlb: add per node hstate attributes Lee Schermerhorn
2009-10-07  4:04   ` David Rientjes
2009-10-06  3:18 ` [PATCH 8/11] hugetlb: update hugetlb documentation for NUMA controls Lee Schermerhorn
2009-10-06  3:18 ` [PATCH 9/11] hugetlb: use only nodes with memory for huge pages Lee Schermerhorn
2009-10-06  3:18 ` [PATCH 10/11] hugetlb: handle memory hot-plug events Lee Schermerhorn
2009-10-07  4:12   ` David Rientjes
2009-10-06  3:19 ` [PATCH 11/11] hugetlb: offload per node attribute registrations Lee Schermerhorn
2009-10-06 16:01   ` Andi Kleen
2009-10-06 16:28     ` Lee Schermerhorn
2009-10-06 16:46       ` Andi Kleen
2009-10-06 17:57         ` Lee Schermerhorn [this message]
2009-10-07  8:24   ` [patch] mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is offlined David Rientjes
2009-10-07 14:25     ` Christoph Lameter
2009-10-07 16:48     ` Lee Schermerhorn
2009-10-07 19:53       ` David Rientjes
2009-10-06 16:02 ` [PATCH 0/11] hugetlb: V9 numa control of persistent huge pages alloc/free Andi Kleen
  -- strict thread matches above, loose matches on Subject: below --
2009-09-15 20:43 [PATCH 0/11] hugetlb: V7 constrain allocation/free based on task mempolicy Lee Schermerhorn
2009-09-15 20:45 ` [PATCH 11/11] hugetlb: offload per node attribute registrations Lee Schermerhorn

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=1254851831.13943.86.camel@useless.americas.hpqcorp.net \
    --to=lee.schermerhorn@hp.com \
    --cc=agl@us.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=apw@canonical.com \
    --cc=eric.whitney@hp.com \
    --cc=linux-mm@kvack.org \
    --cc=linux-numa@vger.kernel.org \
    --cc=mel@csn.ul.ie \
    --cc=nacc@us.ibm.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox