Re: [PATCH v2 1/2] x86: respect memory size limiting via mem= parameter

From: Ingo Molnar
Date: Mon Feb 11 2019 - 07:06:57 EST



* Juergen Gross <jgross@xxxxxxxx> 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.

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.

So I'm wondering what the new logic is here - why should an iomem
resource from a PCI device be ignored? It's a completely separate area
that might or might not be enumerated in the e820 table - the only
requirement we have here I think is that it not overlap RAM areas or each
other (obviously).

So if I understood this new restriction you want mem= to imply, devices
would start failing to initialize on bare metal when mem= is used?

Thanks,

Ingo