On 10.12.19 10:36, David Hildenbrand wrote: > On 10.12.19 10:24, Balbir Singh wrote: >> >> >> On 10/12/19 7:44 pm, Baoquan He wrote: >>> In commit 357b4da50a62 ("x86: respect memory size limiting via mem= >>> parameter") a global varialbe global max_mem_size is added to store >> typo ^^^ >>> the value parsed from 'mem= ', then checked when memory region is >>> added. This truly stops those DIMM from being added into system memory >>> during boot-time. >>> >>> However, it also limits the later memory hotplug functionality. Any >>> memory board can't be hot added any more if its region is beyond the >>> max_mem_size. System will print error like below: >>> >>> [ 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 >>> >>> From document of 'mem= ' parameter, it should be a restriction during >>> boot, but not impact the system memory adding/removing after booting. >>> >>> mem=nn[KMG] [KNL,BOOT] Force usage of a specific amount of memory >>> ... >>> >>> So fix it by also checking if it's during boot-time when restrict memory >>> adding. Otherwise, skip the restriction. >>> >> >> The fix looks reasonable, but I don't get the use case. Booting with mem= is >> generally a debug option, is this for debugging memory hotplug + limited memory? > > Some people/companies use "mem=" along with KVM e.g., to avoid > allocating memmaps for guest backing memory and to not expose it to the > buddy across kexec's. The excluded physical memory is then memmap into s/memmap/mmaped/ > the hypervisor process and KVM can deal with that. I can imagine that > hotplug might be desirable as well for such use cases. > >> >> Balbir >> > > -- Thanks, David / dhildenb