[PATCH v5 0/2] memory-hotplug: add automatic onlining policy for the newly added memory

From: Vitaly Kuznetsov
Date: Wed Jan 13 2016 - 12:32:43 EST


Changes since v4:
Patch 1:
- Use memory_block_change_state() through walk_memory_range() instead of
online_pages() to correctly handle possible failures [David Rientjes]
- Minor memory-hotplug.txt changes (keep the old title, explicitly word
that we have a global policy here) [David Rientjes, Daniel Kiper]
Patch2:
- 'dom0' -> 'control domain', 'domU' -> 'target domain' in Kconfig
[David Vrabel]
- always call add_memory_resource() with memhp_auto_online [David Vrabel]

Original description:

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/auto_online_blocks 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 "offline".

Vitaly Kuznetsov (2):
memory-hotplug: add automatic onlining policy for the newly added
memory
xen_balloon: support memory auto onlining policy

Documentation/memory-hotplug.txt | 20 +++++++++++++++++---
drivers/base/memory.c | 34 +++++++++++++++++++++++++++++++++-
drivers/xen/Kconfig | 20 +++++++++++++-------
drivers/xen/balloon.c | 11 ++++++++++-
include/linux/memory.h | 3 +++
include/linux/memory_hotplug.h | 4 +++-
mm/memory_hotplug.c | 17 +++++++++++++++--
7 files changed, 94 insertions(+), 15 deletions(-)

--
2.5.0