Re: [PATCH 1/3] mem-hotplug: introduce movablenode option

From: Andrew Morton
Date: Thu Aug 11 2016 - 19:13:42 EST


On Thu, 4 Aug 2016 19:23:54 +0800 Xishi Qiu <qiuxishi@xxxxxxxxxx> wrote:

> This patch introduces a new boot option movablenode.
>
> To support memory hotplug, boot option "movable_node" is needed. And to
> support debug memory hotplug, boot option "movable_node" and "movablenode"
> are both needed.
>
> e.g. movable_node movablenode=1,2,4

I have some naming concerns. "movable_node" and "movablenode" is just
confusing and ugly.

Can we just use the one parameter? eg,

vmlinux movable_node

or

vmlinux movable_node=1,2,4

if not that, then how about "movable_node" and "movable_nodes"? Then
every instance of "movablenode" in the patch itself should become
"movable_nodes" to be consistent with the command line parameter.

> It means node 1,2,4 will be set to movable nodes, the other nodes are
> unmovable nodes. Usually movable nodes are parsed from SRAT table which
> offered by BIOS, so this boot option is used for debug.
>
>
> ---
> Documentation/kernel-parameters.txt | 4 ++++
> arch/x86/mm/srat.c | 36 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 40 insertions(+)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 82b42c9..f8726f8 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2319,6 +2319,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> movable_node [KNL,X86] Boot-time switch to enable the effects
> of CONFIG_MOVABLE_NODE=y. See mm/Kconfig for details.
>
> + movablenode= [KNL,X86] Boot-time switch to set which node is
> + movable node.
> + Format: <movable nid>,...,<movable nid>

I think the docs should emphasize that this option disables the usual
SRAT-driven allocation and replaces it with manual allocation.

Also, can we please have more details in the patch changelog? Why do we
*need* this? Just for debugging? Normally people will just use
SRAT-based allocation so normal users won't use this? If so, why is
this debugging feature considered useful enough to add to the kernel?