Re: [RFC v2 01/43] mm: add PKRAM API stubs and Kconfig

From: Anthony Yznaga
Date: Wed Mar 31 2021 - 16:29:56 EST


On 3/31/21 11:43 AM, Randy Dunlap wrote:
> On 3/30/21 2:35 PM, Anthony Yznaga wrote:
>> Preserved-across-kexec memory or PKRAM is a method for saving memory
>> pages of the currently executing kernel and restoring them after kexec
>> boot into a new one. This can be utilized for preserving guest VM state,
>> large in-memory databases, process memory, etc. across reboot. While
>> DRAM-as-PMEM or actual persistent memory could be used to accomplish
>> these things, PKRAM provides the latency of DRAM with the flexibility
>> of dynamically determining the amount of memory to preserve.
>>
> ...
>
>> Originally-by: Vladimir Davydov <vdavydov.dev@xxxxxxxxx>
>> Signed-off-by: Anthony Yznaga <anthony.yznaga@xxxxxxxxxx>
>> ---
>> include/linux/pkram.h | 47 +++++++++++++
>> mm/Kconfig | 9 +++
>> mm/Makefile | 1 +
>> mm/pkram.c | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++
>> 4 files changed, 236 insertions(+)
>> create mode 100644 include/linux/pkram.h
>> create mode 100644 mm/pkram.c
>>
>> diff --git a/mm/pkram.c b/mm/pkram.c
>> new file mode 100644
>> index 000000000000..59e4661b2fb7
>> --- /dev/null
>> +++ b/mm/pkram.c
>> @@ -0,0 +1,179 @@
>> +// SPDX-License-Identifier: GPL-2.0
>> +#include <linux/err.h>
>> +#include <linux/gfp.h>
>> +#include <linux/kernel.h>
>> +#include <linux/mm.h>
>> +#include <linux/pkram.h>
>> +#include <linux/types.h>
>> +
> Hi,
>
> There are several doc blocks that begin with "/**" but that are not
> in kernel-doc format (/** means kernel-doc format when inside the kernel
> source tree).
>
> Please either change those to "/*" or convert them to kernel-doc format.
> The latter is preferable for exported interfaces.
Thank you.  I'll fix these up.

>
>> +/**
>> + * Create a preserved memory node with name @name and initialize stream @ps
>> + * for saving data to it.
>> + *
>> + * @gfp_mask specifies the memory allocation mask to be used when saving data.
>> + *
>> + * Returns 0 on success, -errno on failure.
>> + *
>> + * After the save has finished, pkram_finish_save() (or pkram_discard_save() in
>> + * case of failure) is to be called.
>> + */
>
> b) from patch 00/43:
>
> documentation/core-api/xarray.rst | 8 +
>
> How did "documentation" become lower case (instead of Documentation)?
That is odd.  The patch (41) has it correct.

Anthony

>
>
> thanks.