On Fri, Sep 26, 2025 at 11:45:19AM -0700, [email protected] wrote: > Michał Cłapiński wrote: > [..] > > > As Mike says you would lose 128K at the end, but that indeed becomes > > > losing that 1GB given alignment constraints. > > > > > > However, I think that could be solved by just separately vmalloc'ing the > > > label space for this. Then instead of kernel parameters to sub-divide a > > > region, you just have an initramfs script to do the same. > > > > > > Does that meet your needs? > > > > Sorry, I'm having trouble imagining this. > > If I wanted 500 1GB chunks, I would request a region of 500GB+space > > for the label? Or is that a label and info-blocks? > > You would specify an memmap= range of 500GB+128K*. > > Force attach that range to Mike's RAMDAX driver. > > [ modprobe -r nd_e820, don't build nd_820, or modprobe policy blocks nd_e820 ] > echo ramdax > /sys/bus/platform/devices/e820_pmem/driver_override > echo e820_pmem > /sys/bus/platform/drivers/ramdax > > * forget what I said about vmalloc() previously, not needed > > > Then on each boot the kernel would check if there is an actual > > label/info-blocks in that space and if yes, it would recreate my > > devices (including the fsdax/devdax type)? > > Right, if that range is persistent the kernel would automatically parse > the label space each boot and divide up the 500GB region space into > namespaces. > > 128K of label spaces gives you 509 potential namespaces.
I was also thinking that the label area can be put either in the end or in the beginning of the memmap= range, so that if you specify memmap=<1G aligned address - 128K> the actual space will be 1G aligned. -- Sincerely yours, Mike.

