public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [v2, 0/8] NUMA Hotplug emulator
@ 2010-11-13  6:12 Shaohui Zheng
  2010-11-13 16:06 ` Peter Zijlstra
  0 siblings, 1 reply; 3+ messages in thread
From: Shaohui Zheng @ 2010-11-13  6:12 UTC (permalink / raw)
  To: linux-kernel

It seems that I forget to CC LKML. Forward to the whole mailing, sorry if
duplicated.

Hi, All

	This patchset introduces NUMA hotplug emulator for x86. we already sent out
an early version in LKML (http ://lwn.net/Articles/387571/). This is 4th version
in internal, and 2nd time to sent to LKML. 

Compare with last version, we accept the comments and feedback from the mailing
list, and did more testing and bug fixing on different hardwares. It is relative
stable version.

* WHAT IS HOTPLUG EMULATOR 

NUMA hotplug emulator is collectively named for the hotplug emulation it is
able to emulate NUMA Node Hotplug thru a pure software way. It intends to help
people easily debug and test node/cpu/memory hotplug related stuff on a
none-numa-hotplug-support machine, even an UMA machine.

The emulator provides mechanism to emulate the process of physcial cpu/mem
hotadd, it provides possibility to debug CPU and memory hotplug on the machines
without NUMA support for kenrel developers. It offers an interface for cpu and
memory hotplug test purpose.

* WHY DO WE USE HOTPLUG EMULATOR

We are focusing on the hotplug emualation for a few months. The emualor helps
 team to reproduce all the major hotplug bugs. It plays an important role to
the hotplug code quality assuirance. Because of the hotplug emulator, we already
move most of the debug working to virtual evironment.

* Principles & Usages 

NUMA hotplug emulator include 3 different parts, We add a menu item to the
menuconfig to enable/disable them.

1) Node hotplug emulation:

The emulator firstly hides RAM via E820 table, and then it can
fake offlined nodes with the hidden RAM.

After system bootup, user is able to hotplug-add these offlined
nodes, which is just similar to a real hotplug hardware 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.

There is a sysfs entry "probe" under /sys/devices/system/node/ for user
to hotplug the fake offlined nodes:

 - to show all fake offlined nodes:
    $ cat /sys/devices/system/node/probe

 - to hotadd a fake offlined node, e.g. nodeid is N:
    $ echo N > /sys/devices/system/node/probe

2) CPU hotplug emulation:

The emulator reserve CPUs throu grub parameter, the reserved CPUs can be
hot-add/hot-remove in software method.

When hotplug a CPU with emulator, we are using a logical CPU to emulate the CPU
hotplug process. For the CPU supported SMT, some logical CPUs are in the same
socket, but it may located in different NUMA node after we have emulator.  We
put the logical CPU into a fake CPU socket, and assign it an unique
phys_proc_id. For the fake socket, we put one logical CPU in only.

 - to hide CPUs
	- Using boot option "maxcpus=N" hide CPUs
	  N is the number of initialize CPUs
	- Using boot option "cpu_hpe=on" to enable cpu hotplug emulation
      when cpu_hpe is enabled, the rest CPUs will not be initialized 

 - to hot-add CPU to node
	$ echo nid > cpu/probe

 - to hot-remove CPU
	$ echo nid > cpu/release

3) Memory hotplug emulation:

The emulator reserve memory before OS booting, the reserved memory region
is remove from e820 table, and they can be hot-added via the probe interface,
this interface was extend to support add memory to the specified node, It
maintains backwards compatibility.

The difficulty of Memory Release is well-known, we have no plan for it until now.

 - reserve memory throu grub parameter
 	mem=1024m

 - add a memory section to node 3
    $ echo 0x40000000,3 > memory/probe
	OR
    $ echo 1024m,3 > memory/probe

* ACKNOWLEDGMENT 

hotplug emulator includes a team's efforts, thanks all of them.
They are:
Andi Kleen, Haicheng Li, Shaohui Zheng, Fengguang Wu and Yongkang You

-- 
Thanks & Regards,
Shaohui


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [v2, 0/8] NUMA Hotplug emulator
  2010-11-13  6:12 [v2, 0/8] NUMA Hotplug emulator Shaohui Zheng
@ 2010-11-13 16:06 ` Peter Zijlstra
  2010-11-13 23:46   ` Wu Fengguang
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Zijlstra @ 2010-11-13 16:06 UTC (permalink / raw)
  To: Shaohui Zheng; +Cc: linux-kernel, Andi Kleen, Wu Fengguang

On Sat, 2010-11-13 at 14:12 +0800, Shaohui Zheng wrote:
> Andi Kleen, Haicheng Li, Shaohui Zheng, Fengguang Wu and Yongkang You

Have some of those inform you on how to post stuff to lkml, patches
should have distinct subject lines at the very least.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [v2, 0/8] NUMA Hotplug emulator
  2010-11-13 16:06 ` Peter Zijlstra
@ 2010-11-13 23:46   ` Wu Fengguang
  0 siblings, 0 replies; 3+ messages in thread
From: Wu Fengguang @ 2010-11-13 23:46 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: Zheng, Shaohui, linux-kernel@vger.kernel.org, Andi Kleen

On Sun, Nov 14, 2010 at 12:06:06AM +0800, Peter Zijlstra wrote:
> On Sat, 2010-11-13 at 14:12 +0800, Shaohui Zheng wrote:
> > Andi Kleen, Haicheng Li, Shaohui Zheng, Fengguang Wu and Yongkang You
> 
> Have some of those inform you on how to post stuff to lkml, patches
> should have distinct subject lines at the very least.

Shaohui, let's have a talk tomorrow :)

Thanks,
Fengguang

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-13 23:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-13  6:12 [v2, 0/8] NUMA Hotplug emulator Shaohui Zheng
2010-11-13 16:06 ` Peter Zijlstra
2010-11-13 23:46   ` Wu Fengguang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox