Re: [RFC PATCH 2/2] mm/pmem: Add memblock based e820 platform driver
From: Dan Williams
Date: Fri Jul 06 2018 - 15:38:27 EST
On Fri, Jul 6, 2018 at 1:29 AM, Aneesh Kumar K.V
<aneesh.kumar@xxxxxxxxxxxxx> wrote:
> This patch steal system RAM and use that to emulate pmem device using the
> e820 platform driver.
>
> This adds a new kernel command line 'pmemmap' which takes the format <size[KMG]>
> to allocate memory early in the boot. This memory is later registered as
> persistent memory range.
>
> Based on original patch from Oliver OHalloran <oliveroh@xxxxxxxxxxx>
>
> Not-Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
> ---
> drivers/nvdimm/Kconfig | 13 ++++
> drivers/nvdimm/Makefile | 1 +
> drivers/nvdimm/memblockpmem.c | 115 ++++++++++++++++++++++++++++++++++
> 3 files changed, 129 insertions(+)
> create mode 100644 drivers/nvdimm/memblockpmem.c
>
[..]
> +/*
> + * pmemmap=ss[KMG]
> + *
> + * This is similar to the memremap=offset[KMG]!size[KMG] paramater
> + * for adding a legacy pmem range to the e820 map on x86, but it's
> + * platform agnostic.
The current memmap=ss!nn option is a non-stop source of bugs and
fragility. The fact that this lets the kernel specify the base address
helps, but then this is purely just a debug facility because
memmap=ss!nn is there to cover platform firmware implementations that
fail to mark a given address range as persistent.
If this is just for debug, why not use qemu? If this is not for debug
what are these systems that don't have proper firmware support?