On 11/02/2019 13:06, Ingo Molnar wrote: > > * Juergen Gross <jgr...@suse.com> wrote: > >> When limiting memory size via kernel parameter "mem=" this should be >> respected even in case of memory made accessible via a PCI card. >> >> Today this kind of memory won't be made usable in initial memory >> setup as the memory won't be visible in E820 map, but it might be >> added when adding PCI devices due to corresponding ACPI table entries. >> >> Not respecting "mem=" can be corrected by adding a global max_mem_size >> variable set by parse_memopt() which will result in rejecting adding >> memory areas resulting in a memory size above the allowed limit. > > So historically 'mem=xxxM' was a way to quickly limit RAM.
Right. > If PCI devices had physical mmio memory areas above this range, we'd > still expect them to work - the option was really only meant to limit > RAM. No, in this case it seems to be real RAM added via PCI. The RAM is initially present in the E820 map, but the "mem=" will remove it from there again. During ACPI scan it is found (again) and will be added via hotplug mechanism, so "mem=" has no effect for that memory. Juergen