Re: [PATCH v3] mm/hotplug: Only respect mem= parameter during boot stage

From: JÃrgen GroÃ
Date: Tue Feb 04 2020 - 02:53:39 EST


On 04.02.20 06:06, Baoquan He wrote:
In commit 357b4da50a62 ("x86: respect memory size limiting via mem=
parameter") a global varialbe max_mem_size is added to store
the value parsed from 'mem= ', then checked when memory region is
added. This truly stops those DIMMs from being added into system memory
during boot-time.

However, it also limits the later memory hotplug functionality. Any
DIMM can't be hotplugged any more if its region is beyond the
max_mem_size. We will get errors like:

[ 216.387164] acpi PNP0C80:02: add_memory failed
[ 216.389301] acpi PNP0C80:02: acpi_memory_enable_device() error
[ 216.392187] acpi PNP0C80:02: Enumeration failure

This will cause issue in a known use case where 'mem=' is added to
the hypervisor. The memory that lies after 'mem=' boundary will be
assigned to KVM guests. After commit 357b4da50a62 merged, memory
can't be extended dynamically if system memory on hypervisor is not
sufficient.

So fix it by also checking if it's during boot-time restricting to add
memory. Otherwise, skip the restriction.

And also add this use case to document of 'mem=' kernel parameter.

Fixes: 357b4da50a62 ("x86: respect memory size limiting via mem= parameter")
Signed-off-by: Baoquan He <bhe@xxxxxxxxxx>

Reviewed-by: Juergen Gross <jgross@xxxxxxxx>


Juergen