Re: [3/8,v3] NUMA Hotplug Emulator: Userland interface to hotplug-add fake offlined nodes.

David Rientjes
2010-11-17T08:17:00Z

On Wed, 17 Nov 2010, shaohui.zheng@intel.com wrote:

> From: Haicheng Li <haicheng.li@intel.com>
>
> Add a sysfs entry "probe" under /sys/devices/system/node/:
>
> - 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
>

This would be much more powerful if we just reserved an amount of memory
at boot and then allowed users to hot-add a given amount with an
non-online node id. Then we can test nodes of various sizes rather than
being statically committed at boot.

This should be fairly straight-forward by faking
ACPI_SRAT_MEM_HOT_PLUGGABLE entries, for example.

> Index: linux-hpe4/mm/Kconfig
> ===================================================================
> --- linux-hpe4.orig/mm/Kconfig 2010-11-15 17:13:02.443461606 +0800
> +++ linux-hpe4/mm/Kconfig 2010-11-15 17:21:05.535335091 +0800
> @@ -147,6 +147,21 @@
> depends on MEMORY_HOTPLUG && ARCH_ENABLE_MEMORY_HOTREMOVE
> depends on MIGRATION
>
> +config NUMA_HOTPLUG_EMU
> + bool "NUMA hotplug emulator"
> + depends on X86_64 && NUMA && MEMORY_HOTPLUG
> +
> + ---help---
> +
> +config NODE_HOTPLUG_EMU
> + bool "Node hotplug emulation"
> + depends on NUMA_HOTPLUG_EMU && MEMORY_HOTPLUG
> + ---help---
> + Enable Node hotplug emulation. The machine will be setup with
> + hidden virtual nodes when booted with "numa=hide=N*size", where
> + N is the number of hidden nodes, size is the memory size per
> + hidden node. This is only useful for debugging.
> +

That's clearly wrong, but I don't see why this needs to be a new Kconfig
option to begin with, can't we enable all of this functionality by default
under CONFIG_NUMA_EMU && CONFIG_MEMORY_HOTPLUG?