Re: [2/8,v3] NUMA Hotplug Emulator: infrastructure of NUMA hotplug emulation

Shaohui Zheng
2010-11-17T09:12:08Z

On Wed, Nov 17, 2010 at 12:16:47AM -0800, David Rientjes wrote:
> On Wed, 17 Nov 2010, shaohui.zheng@intel.com wrote:
>
> > From: Haicheng Li <haicheng.li@intel.com>
> >
> > NUMA hotplug emulator introduces a new node state N_HIDDEN to
> > identify the fake offlined node. It firstly hides RAM via E820
> > table and then emulates fake offlined nodes with the hidden RAM.
> >
>
> Hmm, why can't you use numa=hide to hide a specified quantity of memory
> from the kernel and then use the add_memory() interface to hot-add the
> offlined memory in the desired quantity? In other words, why do you need
> to track the offlined nodes with a state?
>
> The userspace interface would take a desired size of hidden memory to
> hot-add and the node id would be the first_unset_node(node_online_map).
Yes, it is a good idea, your solution is what we indeed do in our first 2
versions. We use mem=memsize to hide memory, and we call add_memory interface
to hot-add offlined memory with desired quantity, and we can also add to
desired nodes(even through the nodes does not exists). it is very flexible
solution.

However, this solution was denied since we notice NUMA emulation, we should
reuse it.

Currently, our solution creates static nodes when OS boots, only the node with
state N_HIDDEN can be hot-added with node/probe interface, and we can query

>
> > After system bootup, user is able to hotplug-add these offlined
> > nodes, which is just similar to a real hardware hotplug behavior.
> >
> > Using boot option "numa=hide=N*size" to fake offlined nodes:
> > - N is the number of hidden nodes
> > - size is the memory size (in MB) per hidden node.
> >
>
> size should be parsed with memparse() so users can specify 'M' or 'G', it
> would even make your parsing code simpler.
Agree, if we use memparse, users can specify 'M' or 'G', we will added it when
we send next version.

--
Thanks & Regards,
Shaohui