On 10/12/19 8:37 pm, David Hildenbrand wrote: > 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. Makes sense, sounds hacky, but it seems like mem= is no longer a debug option Acked-by: Balbir Singh <bsingharora@xxxxxxxxx> >> >>> >>> Balbir >>> >> >> > >