Re: [Patch 002/002] Create/delete kmem_cache_node for SLUB on memory online callback

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Christoph Lameter <clameter@...>
Cc: Andrew Morton <akpm@...>, Hiroyuki KAMEZAWA <kamezawa.hiroyu@...>, Linux Kernel ML <linux-kernel@...>, linux-mm <linux-mm@...>
Date: Friday, October 12, 2007 - 2:15 am

> On Fri, 12 Oct 2007, Yasunori Goto wrote:

Hmm. My description may be wrong. I would like to just
mention that kmem_cache_node should be created before the node's page
can be allocated. If not, it will cause of panic.



Yes. kmem_cache_node is still necessary for remaining memory on the
node.


If node doesn't have memory and offline_pages() called for it,
it must be check and fail. This callback shouldn't be called.
If not, it is bug of memory hotplug, I think.



Right. If slabs' migration is possible, here would be good place for
doing it. But, it is not possible (at least now).


Ok. I'll fix it.


If slabs still exist, it can't be migrated and offline_pages() has
to give up offline. This means MEM_OFFLINE event is not generated when
slabs are on the removing node.
In other word, when this event is generated, all of pages on
this section is isolated and there are no used pages(slabs).



Yes.



Again. If nr_slabs > 0, offline_pages must be fail due to slabs
remaining on the node before. So, this callback isn't called.


kmem_cache_node is created at boot time if the node has memory.
(Or, it is created by this callback on first added memory on the node).

When nid = - 1, kmem_cache_node is created before this node due to
node has memory. 


Your mention might be ok.
But. I would like to prefer to define status of node hotplug for
exactitude like followings


A)Node online -- pgdat is created and can be accessed for this node.
                 but there are no gurantee that cpu or memory is onlined.
                 This status is very close from memory-less node.
                 But this might be halfway status for node hotplug.
                 Node online bit is set. But N_HIGH_MEMORY
                 (or N_NORMAL_MEMORY) might be not set.

B)Node has memory--
                 one or more sections memory is onlined on the node.
                 N_HIGH_MEMORY (or N_NORMAL_MEMORY) is set.

If first memory is onlined on the node, the node status changes
from A) to B).

I feel this is very useful to manage "halfway status" of node
hotplug. (So, memory-less node patch is very helpful for me.)

So, I would like to avoid using the word "node online" at here.
But, if above definition is messy for others, I'll change it.



Yes.


Thanks for your comment.

-- 
Yasunori Goto 


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[Patch 000/002] Rearrange notifier of memory hotplug, Yasunori Goto, (Thu Oct 11, 10:18 pm)
Re: [Patch 002/002] Create/delete kmem_cache_node for SLUB o..., Christoph Lameter, (Fri Oct 12, 12:09 am)
Re: [Patch 002/002] Create/delete kmem_cache_node for SLUB o..., Yasunori Goto, (Fri Oct 12, 2:15 am)
Re: [Patch 002/002] Create/delete kmem_cache_node for SLUB o..., Christoph Lameter, (Fri Oct 12, 1:19 pm)
[Patch 001/002] extract kmem_cache_shrink, Yasunori Goto, (Thu Oct 11, 10:27 pm)
Re: [Patch 001/002] extract kmem_cache_shrink, Christoph Lameter, (Fri Oct 12, 12:09 am)
Re: [Patch 001/002] extract kmem_cache_shrink, Yasunori Goto, (Fri Oct 12, 12:41 am)
Re: [Patch 001/002] Make description of memory hotplug notif..., Christoph Lameter, (Fri Oct 12, 12:18 am)