Re: [PATCH v4 00/23] device-dax: Support sub-dividing soft-reserved ranges
From: Dan Williams
Date: Fri Aug 21 2020 - 17:17:37 EST
On Fri, Aug 21, 2020 at 11:30 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
>
> On 21.08.20 20:27, Dan Williams wrote:
> > On Fri, Aug 21, 2020 at 3:15 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
> >>
> >>>>
> >>>> 1. On x86-64, e820 indicates "soft-reserved" memory. This memory is not
> >>>> automatically used in the buddy during boot, but remains untouched
> >>>> (similar to pmem). But as it involves ACPI as well, it could also be
> >>>> used on arm64 (-e820), correct?
> >>>
> >>> Correct, arm64 also gets the EFI support for enumerating memory this
> >>> way. However, I would clarify that whether soft-reserved is given to
> >>> the buddy allocator by default or not is the kernel's policy choice,
> >>> "buddy-by-default" is ok and is what will happen anyways with older
> >>> kernels on platforms that enumerate a memory range this way.
> >>
> >> Is "soft-reserved" then the right terminology for that? It sounds very
> >> x86-64/e820 specific. Maybe a compressed for of "performance
> >> differentiated memory" might be a better fit to expose to user space, no?
> >
> > No. The EFI "Specific Purpose" bit is an attribute independent of
> > e820, it's x86-Linux that entangles those together. There is no
> > requirement for platform firmware to use that designation even for
> > drastic performance differentiation between ranges, and conversely
> > there is no requirement that memory *with* that designation has any
> > performance difference compared to the default memory pool. So it
> > really is a reservation policy about a memory range to keep out of the
> > buddy allocator by default.
>
> Okay, still "soft-reserved" is x86-64 specific, no?
There's nothing preventing other EFI archs, or a similar designation
in another firmware spec, picking up this policy.
> (AFAIK,
> "soft-reserved" will be visible in /proc/iomem, or am I confusing
> stuff?)
No, you're correct.
> IOW, it "performance differentiated" is not universally
> applicable, maybe "specific purpose memory" is ?
Those bikeshed colors don't seem an improvement to me.
"Soft-reserved" actually tells you something about the kernel policy
for the memory. The criticism of "specific purpose" that led to
calling it "soft-reserved" in Linux is the fact that "specific" is
undefined as far as the firmware knows, and "specific" may have
different applications based on the platform user. "Soft-reserved"
like "Reserved" tells you that a driver policy might be in play for
that memory.
Also note that the current color of the bikeshed has already shipped since v5.5:
262b45ae3ab4 x86/efi: EFI soft reservation to E820 enumeration