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

> +
>  config DEV_DAX_KMEM
>       tristate "KMEM DAX: map dax-devices as System-RAM"
>       default DEV_DAX

> +}


Reply via email to