On Sun, Apr 20, 2025 at 10:06 PM Ira Weiny <ira.we...@intel.com> wrote: > > Michal Clapinski wrote: > > Currently, the user has to specify each memory region to be used with > > nvdimm via the memmap parameter. Due to the character limit of the > > command line, this makes it impossible to have a lot of pmem devices. > > This new parameter solves this issue by allowing users to divide > > one e820 entry into many nvdimm regions. > > > > This change is needed for the hypervisor live update. VMs' memory will > > be backed by those emulated pmem devices. To support various VM shapes > > I want to create devdax devices at 1GB granularity similar to hugetlb. > > Why is it not sufficient to create a region out of a single memmap range > and create multiple 1G dax devices within that single range?
This method implies using the ndctl tool to create regions and convert them to dax devices from userspace. This does not work for our use case. We must have these 1 GB regions available during boot because we do not want to lose memory for a devdax label. I.e., if fsdax is created during boot (i.e. default pmem format), it does not have a label. However, if it is created from userspace, we create a label with partition properties, UUID, etc. Here, we need to use kernel parameters to specify the properties of the pmem devices during boot so they can persist across reboots without losing any memory to labels. Pasha