dax alignment problem on arm64 (and other achitectures)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan,

Restarting this thread to get more insights about dax alignment problem.
So having a devdax pmem of size 128M is [1] not usable and entire memory
is wasted? For 256M size devdax pmem, again 126M seems to be wasted and
only 128M can be hot added/removed. This was observed on ARM64 platform.

do we have any potential or existing solution for this problem ?

> >
> > > Since we last talked about this the enabling for EFI "Special Purpose"
> > > / Soft Reserved Memory has gone upstream and instantiates device-dax
> > > instances for address ranges marked with EFI_MEMORY_SP attribute.
> > > Critically this way of declaring device-dax removes the consideration
> > > of it as persistent memory and as such no metadata reservation. So, if
> > > you are willing to maintain the metadata external to the device (which
> > > seems reasonable for your environment) and have your platform firmware
> > > / kernel command line mark it as EFI_CONVENTIONAL_MEMORY +
> > > EFI_MEMORY_SP, then these reserve-free dax-devices will surface.
> >
> > Hi Dan,
> >
> > This is cool. Does it allow conversion between devdax and fsdax so DAX
> > aware filesystem can be installed and data can be put there to be
> > preserved across the reboot?
> >
> 
> It does not because it's not "pmem" by this designation.
> 
> Instead if you want fsdax, zero metadata on the device, and the
> ability to switch from fsdax to devdax I think that could be achieved
> with a new sysfs attribute at the region-device level. Currently the
> mode of a namespace with no metadata on it defaults to "raw" mode
> where "raw" treats the pmem as a persistent memory block device with
> no DAX capability. There's no reason the default could instead be
> devdax with pages mapped.
> 
> Something like:
> ndctl disable-region region0
> echo 1 > /sys/bus/nd/devices/region0/pagemap
> echo devdax > /sys/bus/nd/devices/region0/raw_default

this interface file seems to be not available

can we use sub-section hotplug feature here, there aren't much details available
about using that, is it via sysfs ?

I appreciate your help and guidance on this.

Thanks,
Shyam

[1] https://elixir.bootlin.com/linux/v6.10-rc5/source/drivers/dax/kmem.c#L102




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux