lkml.org 
[lkml]   [2010]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 2/2] mm: add node hotplug emulation
On Mon, 22 Nov 2010, Shaohui Zheng wrote:

> > and then creating a new 128M node at runtime:
> >
> > # echo 128M@0x80000000 > /sys/devices/system/memory/add_node
> > On node 1 totalpages: 0
> > init_memory_mapping: 0000000080000000-0000000088000000
> > 0080000000 - 0088000000 page 2M
>
> For cpu/memory physical hotplug, we have the unique interface probe/release,
> it is the _standard_ interface, it is not only for x86, ppc use the the interface
> as well. For node hotplug, it should follow the rule.
>
> You are creating a new interface /sys/devices/system/memory/add_node to add both
> memory and node, you are just trying to create DUPLICATED feature with the
> memory probe interface, it breaks the rule.
>

It's not duplicated, the function of add_node is distinct since it maps
the added memory to a node that wasn't previously defined (for the x86
case, defined by the SRAT). I think this is better than an additional
abstraction layer that remaps memory to nodes above what the BIOS has
defined, and there's nothing architecture specific about add_node; if an
arch can do probe then it can use this new interface.

> I did NOT see the feature difference with our emulator patch http://lkml.org/lkml/2010/11/16/740,
> you pick up a piece of feature from emulator, and create an other thread. You
> are trying to replace the interface with a new one, which is not recommended.
> the memory probe interface is already powerful and flexible enough after apply
> our patch. What's more important, it keeps the old directives, and it maintains
> backwards compatibility.
>

This achieves the same goal in a much cleaner and generic way. It doesn't
replace anything that currently sits in the kernel, instead it competes
directly with your model for node hotplug emulation.

> Add a memory section(128M) to node 3(boots with mem=1024m)
>
> echo 0x40000000,3 > memory/probe
>
> And more we make it friendly, it is possible to add memory to do
>
> echo 3g > memory/probe
> echo 1024m,3 > memory/probe
>
> It maintains backwards compatibility.
>

My patch doesn't break backwards compatibility, it adds a new debugfs file
that allows you to test node hotplug.

> Another format suggested by Dave Hansen:
>
> echo physical_address=0x40000000 numa_node=3 > memory/probe
>
> we should not need duplicated interface /sys/devices/system/memory/add_node here.
>

We don't need to define a node id, we only need to ensure that a possible
node is not yet online and use it; we don't gain anything by trying to
hotplug node ids in a sparse or interleaved way (although it is certainly
possible with a combination of my patch and CONFIG_MEMORY_HOTREMOVE).


\
 
 \ /
  Last update: 2010-11-28 03:03    [W:0.040 / U:1.288 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site