Re: [PATCH v2] memory-hotplug: add automatic onlining policy for the newly added memory

From: Andrew Morton
Date: Tue Dec 22 2015 - 16:55:28 EST


On Tue, 22 Dec 2015 17:32:30 +0100 Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote:

> Currently, all newly added memory blocks remain in 'offline' state unless
> someone onlines them, some linux distributions carry special udev rules
> like:
>
> SUBSYSTEM=="memory", ACTION=="add", ATTR{state}=="offline", ATTR{state}="online"
>
> to make this happen automatically. This is not a great solution for virtual
> machines where memory hotplug is being used to address high memory pressure
> situations as such onlining is slow and a userspace process doing this
> (udev) has a chance of being killed by the OOM killer as it will probably
> require to allocate some memory.
>
> Introduce default policy for the newly added memory blocks in
> /sys/devices/system/memory/hotplug_autoonline file with two possible
> values: "offline" which preserves the current behavior and "online" which
> causes all newly added memory blocks to go online as soon as they're added.
> The default is "online" when MEMORY_HOTPLUG_AUTOONLINE kernel config option
> is selected.

I think the default should be "offline" so vendors can ship kernels
which have CONFIG_MEMORY_HOTPLUG_AUTOONLINE=y while being
back-compatible with previous kernels.

> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2537,6 +2537,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> shutdown the other cpus. Instead use the REBOOT_VECTOR
> irq.
>
> + nomemhp_autoonline Don't automatically online newly added memory.
> +

This wasn't mentioned in the changelog. Why do we need a boot
parameter as well as the sysfs knob?

> +config MEMORY_HOTPLUG_AUTOONLINE
> + bool "Automatically online hot-added memory"
> + depends on MEMORY_HOTPLUG_SPARSE
> + help
> + When memory is hot-added, it is not at ready-to-use state, a special

"When memory is hot-added it is not in a ready-to-use state. A special"

> + userspace action is required to online the newly added blocks. With
> + this option enabled, the kernel will try to online all newly added
> + memory automatically.
> +
>
> ...
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/