John Groves wrote: > On 26/03/24 02:39PM, Jonathan Cameron wrote: > > On Tue, 24 Mar 2026 00:38:31 +0000 > > John Groves <[email protected]> wrote: > > > > > From: John Groves <[email protected]> > > > > > > The new fsdev driver provides pages/folios initialized compatibly with > > > fsdax - normal rather than devdax-style refcounting, and starting out > > > with order-0 folios. > > > > > > When fsdev binds to a daxdev, it is usually (always?) switching from the > > > devdax mode (device.c), which pre-initializes compound folios according > > > to its alignment. Fsdev uses fsdev_clear_folio_state() to switch the > > > folios into a fsdax-compatible state. > > > > > > A side effect of this is that raw mmap doesn't (can't?) work on an fsdev > > > dax instance. Accordingly, The fsdev driver does not provide raw mmap - > > > devices must be put in 'devdax' mode (drivers/dax/device.c) to get raw > > > mmap capability. > > > > > > In this commit is just the framework, which remaps pages/folios compatibly > > > with fsdax. > > > > > > Enabling dax changes: > > > > > > - bus.h: add DAXDRV_FSDEV_TYPE driver type > > > - bus.c: allow DAXDRV_FSDEV_TYPE drivers to bind to daxdevs > > > - dax.h: prototype inode_dax(), which fsdev needs > > > > > > Suggested-by: Dan Williams <[email protected]> > > > Suggested-by: Gregory Price <[email protected]> > > > Signed-off-by: John Groves <[email protected]> > > > > I was kind of thinking you'd go with a hidden KCONFIG option with default > > magic to do the same build condition to you had in the Makefil, but one the > > user can opt in or out for is also fine. > > > > Comments on that below. Meh, I think this is better anyway :) > > > > Reviewed-by: Jonathan Cameron <[email protected]> > > > > > > > > > diff --git a/drivers/dax/Kconfig b/drivers/dax/Kconfig > > > index d656e4c0eb84..7051b70980d5 100644 > > > --- a/drivers/dax/Kconfig > > > +++ b/drivers/dax/Kconfig > > > @@ -61,6 +61,17 @@ config DEV_DAX_HMEM_DEVICES > > > depends on DEV_DAX_HMEM && DAX > > > def_bool y > > > > > > +config DEV_DAX_FSDEV > > > + tristate "FSDEV DAX: fs-dax compatible devdax driver" > > > + depends on DEV_DAX && FS_DAX > > > + help > > > + Support fs-dax access to DAX devices via a character device > > > + interface. Unlike device_dax (which pre-initializes compound folios > > > + based on device alignment), this driver leaves folios at order-0 so > > > + that fs-dax filesystems can manage folio order dynamically. > > > + > > > + Say M if unsure. > > Fine like this, but if you wanted to hide it in interests of not > > confusing users... > > > > config DEV_DAX_FSDEV > > tristate > > depends on DEV_DAX && FS_DAX > > default DEV_DAX > > I like this better. I see no reason not to default to including fsdev. > It does nothing other than frustrating famfs users if it's off - since > building it still has no effect unless you put a daxdev in famfs mode. > > Ira, it's kinda in your hands at the moment. Do you feel like making this > change?
I don't mind making this change. But we have to deal with the breakage to current device dax users. https://lore.kernel.org/all/[email protected]/ What am I missing? Ira

