Re: [PATCH v2] memory_hotplug: zone_can_shift() returns boolean value

From: Andrew Morton
Date: Mon Jan 09 2017 - 18:25:41 EST


On Tue, 13 Dec 2016 15:29:49 -0500 Yasuaki Ishimatsu <yasu.isimatu@xxxxxxxxx> wrote:

> online_{kernel|movable} is used to change the memory zone to
> ZONE_{NORMAL|MOVABLE} and online the memory.
>
> To check that memory zone can be changed, zone_can_shift() is used.
> Currently the function returns minus integer value, plus integer
> value and 0. When the function returns minus or plus integer value,
> it means that the memory zone can be changed to ZONE_{NORNAL|MOVABLE}.
>
> But when the function returns 0, there is 2 meanings.
>
> One of the meanings is that the memory zone does not need to be changed.
> For example, when memory is in ZONE_NORMAL and onlined by online_kernel
> the memory zone does not need to be changed.
>
> Another meaning is that the memory zone cannot be changed. When memory
> is in ZONE_NORMAL and onlined by online_movable, the memory zone may
> not be changed to ZONE_MOVALBE due to memory online limitation(see
> Documentation/memory-hotplug.txt). In this case, memory must not be
> onlined.
>
> The patch changes the return type of zone_can_shift() so that memory
> is not onlined when memory zone cannot be changed.

What are the user-visible runtime effects of this fix?

Please always include this info when fixing bugs - it is required so
that others can decide which kernel version(s) need the fix.

Thanks.