memory-hotplug: more general validation of zone during online
authorReza Arbab <[email protected]>
Tue, 26 Jul 2016 22:22:23 +0000 (15:22 -0700)
committerLinus Torvalds <[email protected]>
Tue, 26 Jul 2016 23:19:19 +0000 (16:19 -0700)
commitdf429ac039360005299d56247647ca77098d660e
treeb2e77a3454ffbf68030b7caa4f9eb508057eb072
parente51e6c8f80731d723ada126c029301cee2827fac
memory-hotplug: more general validation of zone during online

When memory is onlined, we are only able to rezone from ZONE_MOVABLE to
ZONE_KERNEL, or from (ZONE_MOVABLE - 1) to ZONE_MOVABLE.

To be more flexible, use the following criteria instead; to online
memory from zone X into zone Y,

* Any zones between X and Y must be unused.
* If X is lower than Y, the onlined memory must lie at the end of X.
* If X is higher than Y, the onlined memory must lie at the start of X.

Add zone_can_shift() to make this determination.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Reza Arbab <[email protected]>
Reviewd-by: Yasuaki Ishimatsu <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Daniel Kiper <[email protected]>
Cc: Dan Williams <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: Tang Chen <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Cc: David Vrabel <[email protected]>
Cc: Vitaly Kuznetsov <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Andrew Banman <[email protected]>
Cc: Chen Yucong <[email protected]>
Cc: Yasunori Goto <[email protected]>
Cc: Zhang Zhen <[email protected]>
Cc: Shaohua Li <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/memory_hotplug.h
mm/memory_hotplug.c