[RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-23 Thread John Groves
] https://lore.kernel.org/all/166630293549.1017198.3833687373550679565.st...@dwillia2-xfh.jf.intel.com/ [4] https://www.computeexpresslink.org/download-the-specification [5] https://github.com/cxl-micron-reskit/famfs-linux John Groves (20): famfs: Documentation dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-d

[RFC PATCH 01/20] famfs: Documentation

2024-02-23 Thread John Groves
Introduce Documentation/filesystems/famfs.rst into the Documentation tree Signed-off-by: John Groves --- Documentation/filesystems/famfs.rst | 124 1 file changed, 124 insertions(+) create mode 100644 Documentation/filesystems/famfs.rst diff --git a/Documentation

[RFC PATCH 02/20] dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usage

2024-02-23 Thread John Groves
This function should be called by fs-dax file systems after opening the devdax device. This adds holder_operations. This function serves the same role as fs_dax_get_by_bdev(), which dax file systems call after opening the pmem block device. Signed-off-by: John Groves --- drivers/dax/super.c

[RFC PATCH 03/20] dev_dax_iomap: Move dax_pgoff_to_phys from device.c to bus.c since both need it now

2024-02-23 Thread John Groves
bus.c can't call functions in device.c - that creates a circular linkage dependency. Signed-off-by: John Groves --- drivers/dax/bus.c| 24 drivers/dax/device.c | 23 --- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/driver

[RFC PATCH 04/20] dev_dax_iomap: Save the kva from memremap

2024-02-23 Thread John Groves
ses we need to add the difference to virt_addr in order to have the physaddr's in dev_dax->ranges match dev_dax->virt_addr. Dragons... Signed-off-by: John Groves --- drivers/dax/dax-private.h | 1 + drivers/dax/device.c | 15 +++ 2 files changed, 16 insertions(+)

[RFC PATCH 05/20] dev_dax_iomap: Add dax_operations for use by fs-dax on devdax

2024-02-23 Thread John Groves
ult()), and the kva is used for read/write (dax_iomap_rw()) * dev_dax_recovery_write() and dev_dax_zero_page_range() have not been tested yet. I'm looking for suggestions as to how to test those. Signed-off-by: John Groves --- drivers/dax/bus.c | 107 +

[RFC PATCH 06/20] dev_dax_iomap: Add CONFIG_DEV_DAX_IOMAP kernel build parameter

2024-02-23 Thread John Groves
Add the CONFIG_DEV_DAX_IOMAP kernel config parameter to control building of the iomap functionality to support fsdax on devdax. Signed-off-by: John Groves --- drivers/dax/Kconfig | 6 ++ 1 file changed, 6 insertions(+) diff --git a/drivers/dax/Kconfig b/drivers/dax/Kconfig index

[RFC PATCH 07/20] famfs: Add include/linux/famfs_ioctl.h

2024-02-23 Thread John Groves
Add uapi include file for famfs. The famfs user space uses ioctl on individual files to pass in mapping information and file size. This would be hard to do via sysfs or other means, since it's file-specific. Signed-off-by: John Groves --- include/uapi/linux/famfs_ioctl.h

[RFC PATCH 08/20] famfs: Add famfs_internal.h

2024-02-23 Thread John Groves
Add the famfs_internal.h include file. This contains internal data structures such as the per-file metadata structure (famfs_file_meta) and extent formats. Signed-off-by: John Groves --- fs/famfs/famfs_internal.h | 53 +++ 1 file changed, 53 insertions

[RFC PATCH 09/20] famfs: Add super_operations

2024-02-23 Thread John Groves
Introduce the famfs superblock operations Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 72 ++ 1 file changed, 72 insertions(+) create mode 100644 fs/famfs/famfs_inode.c diff --git a/fs/famfs/famfs_inode.c b/fs/famfs/famfs_inode.c new file

[RFC PATCH 10/20] famfs: famfs_open_device() & dax_holder_operations

2024-02-23 Thread John Groves
. Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 83 ++ 1 file changed, 83 insertions(+) diff --git a/fs/famfs/famfs_inode.c b/fs/famfs/famfs_inode.c index 3329aff000d1..82c861998093 100644 --- a/fs/famfs/famfs_inode.c +++ b/fs/famfs/famfs_inode.c

[RFC PATCH 11/20] famfs: Add fs_context_operations

2024-02-23 Thread John Groves
This commit introduces the famfs fs_context_operations and famfs_get_inode() which is used by the context operations. Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 178 + 1 file changed, 178 insertions(+) diff --git a/fs/famfs/famfs_inode.c b

[RFC PATCH 12/20] famfs: Add inode_operations and file_system_type

2024-02-23 Thread John Groves
This commit introduces the famfs inode_operations. There is nothing really unique to famfs here in the inode_operations.. This commit also introduces the famfs_file_system_type struct and the famfs_kill_sb() function. Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 132

[RFC PATCH 13/20] famfs: Add iomap_ops

2024-02-23 Thread John Groves
e per-file metadata is just an extent list to the backing dax dev. The order of this resolution is O(N) for N extents. Note with the current user space, files usually have only one extent. Signed-off-by: John Groves --- fs/famfs/famfs_file.c | 245 ++ 1 fi

[RFC PATCH 14/20] famfs: Add struct file_operations

2024-02-23 Thread John Groves
replaying the log, or by umount/mount/log replay - all of which are user space operations. Signed-off-by: John Groves --- fs/famfs/famfs_file.c | 136 ++ 1 file changed, 136 insertions(+) diff --git a/fs/famfs/famfs_file.c b/fs/famfs/famfs_file.c index

[RFC PATCH 15/20] famfs: Add ioctl to file_operations

2024-02-23 Thread John Groves
- Get the header of the metadata for a file FAMFSIOC_MAP_GETEXT - Get the extents for a file The latter two, together, are comparable to xfs_bmap. Our user space tools use them primarly in testing. Signed-off-by: John Groves --- fs/famfs/famfs_file.c | 226

[RFC PATCH 16/20] famfs: Add fault counters

2024-02-23 Thread John Groves
enabled and read via /sys/fs/famfs/... These counters have proved useful in troubleshooting situations where PTE faults were happening instead of PMD. No performance impact when disabled. Signed-off-by: John Groves --- fs/famfs/famfs_file.c | 97 +++ fs/famfs

[RFC PATCH 17/20] famfs: Add module stuff

2024-02-23 Thread John Groves
This commit introduces the module init and exit machinery for famfs. Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 44 ++ 1 file changed, 44 insertions(+) diff --git a/fs/famfs/famfs_inode.c b/fs/famfs/famfs_inode.c index ab46ec50b70d

[RFC PATCH 18/20] famfs: Support character dax via the dev_dax_iomap patch

2024-02-23 Thread John Groves
This commit introduces the ability to open a character /dev/dax device instead of a block /dev/pmem device. This rests on the dev_dax_iomap patches earlier in this series. Signed-off-by: John Groves --- fs/famfs/famfs_inode.c | 97 +- 1 file changed, 87

[RFC PATCH 19/20] famfs: Update MAINTAINERS file

2024-02-23 Thread John Groves
This patch introduces famfs into the MAINTAINERS file Signed-off-by: John Groves --- MAINTAINERS | 11 +++ 1 file changed, 11 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 73d898383e51..e4e8bf3602bb 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8097,6 +8097,17 @@ F

[RFC PATCH 20/20] famfs: Add Kconfig and Makefile plumbing

2024-02-23 Thread John Groves
Add famfs Kconfig and Makefile, and hook into fs/Kconfig and fs/Makefile Signed-off-by: John Groves --- fs/Kconfig| 2 ++ fs/Makefile | 1 + fs/famfs/Kconfig | 10 ++ fs/famfs/Makefile | 5 + 4 files changed, 18 insertions(+) create mode 100644 fs/famfs/Kconfig

Re: [RFC PATCH 16/20] famfs: Add fault counters

2024-02-23 Thread John Groves
On 24/02/23 10:23AM, Dave Hansen wrote: > On 2/23/24 09:42, John Groves wrote: > > One of the key requirements for famfs is that it service vma faults > > efficiently. Our metadata helps - the search order is n for n extents, > > and n is usually 1. But we can still observe g

Re: [RFC PATCH 16/20] famfs: Add fault counters

2024-02-23 Thread John Groves
On 24/02/23 12:04PM, Dan Williams wrote: > John Groves wrote: > > On 24/02/23 10:23AM, Dave Hansen wrote: > > > On 2/23/24 09:42, John Groves wrote: > > > > One of the key requirements for famfs is that it service vma faults > > > > efficiently. Our me

Re: [RFC PATCH 07/20] famfs: Add include/linux/famfs_ioctl.h

2024-02-23 Thread John Groves
On 24/02/23 05:39PM, Randy Dunlap wrote: > Hi-- > > On 2/23/24 09:41, John Groves wrote: > > Add uapi include file for famfs. The famfs user space uses ioctl on > > individual files to pass in mapping information and file size. This > > would be hard to do via sysfs

Re: [RFC PATCH 20/20] famfs: Add Kconfig and Makefile plumbing

2024-02-23 Thread John Groves
On 24/02/23 05:50PM, Randy Dunlap wrote: > Hi, > > On 2/23/24 09:42, John Groves wrote: > > Add famfs Kconfig and Makefile, and hook into fs/Kconfig and fs/Makefile > > > > Signed-off-by: John Groves > > --- > > fs/Kconfig| 2 ++ > > f

Re: [RFC PATCH 07/20] famfs: Add include/linux/famfs_ioctl.h

2024-02-24 Thread John Groves
On 24/02/23 07:27PM, Randy Dunlap wrote: > Hi John, > > On 2/23/24 18:23, John Groves wrote: > >>> + > >>> +#define FAMFSIOC_MAGIC 'u' > >> This 'u' value should be documented in > >> Documentation/userspace-api/ioctl/ioctl-n

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-26 Thread John Groves
On 24/02/23 04:07PM, Luis Chamberlain wrote: > On Fri, Feb 23, 2024 at 11:41:44AM -0600, John Groves wrote: > > This patch set introduces famfs[1] - a special-purpose fs-dax file system > > for sharable disaggregated or fabric-attached memory (FAM). Famfs is not > > CXL-s

Re: [RFC PATCH 02/20] dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usage

2024-02-26 Thread John Groves
On 24/02/26 12:05PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:46 -0600 > John Groves wrote: > > > This function should be called by fs-dax file systems after opening the > > devdax device. This adds holder_operations. > > > > This function serves th

Re: [RFC PATCH 03/20] dev_dax_iomap: Move dax_pgoff_to_phys from device.c to bus.c since both need it now

2024-02-26 Thread John Groves
On 24/02/26 12:10PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:47 -0600 > John Groves wrote: > > > bus.c can't call functions in device.c - that creates a circular linkage > > dependency. > > > > Signed-off-by: John Groves > > This a

Re: [RFC PATCH 04/20] dev_dax_iomap: Save the kva from memremap

2024-02-26 Thread John Groves
On 24/02/26 12:21PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:48 -0600 > John Groves wrote: > > > Save the kva from memremap because we need it for iomap rw support > > > > Prior to famfs, there were no iomap users of /dev/dax - so the virtual > > add

Re: [RFC PATCH 05/20] dev_dax_iomap: Add dax_operations for use by fs-dax on devdax

2024-02-26 Thread John Groves
On 24/02/26 12:32PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:49 -0600 > John Groves wrote: > > > Notes about this commit: > > > > * These methods are based somewhat loosely on pmem_dax_ops from > > drivers/nvdimm/pmem.c > > > > * de

Re: [RFC PATCH 06/20] dev_dax_iomap: Add CONFIG_DEV_DAX_IOMAP kernel build parameter

2024-02-26 Thread John Groves
On 24/02/26 12:34PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:50 -0600 > John Groves wrote: > > > Add the CONFIG_DEV_DAX_IOMAP kernel config parameter to control building > > of the iomap functionality to support fsdax on devdax. > > I would squash wit

Re: [RFC PATCH 07/20] famfs: Add include/linux/famfs_ioctl.h

2024-02-26 Thread John Groves
On 24/02/26 12:39PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:51 -0600 > John Groves wrote: > > > Add uapi include file for famfs. The famfs user space uses ioctl on > > individual files to pass in mapping information and file size. This > > would be ha

Re: [RFC PATCH 08/20] famfs: Add famfs_internal.h

2024-02-26 Thread John Groves
On 24/02/26 12:48PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:52 -0600 > John Groves wrote: > > > Add the famfs_internal.h include file. This contains internal data > > structures such as the per-file metadata structure (famfs_file_meta) > > and extent form

Re: [RFC PATCH 07/20] famfs: Add include/linux/famfs_ioctl.h

2024-02-26 Thread John Groves
On 24/02/26 04:56PM, Jonathan Cameron wrote: > On Mon, 26 Feb 2024 10:44:43 -0600 > John Groves wrote: > > > On 24/02/26 12:39PM, Jonathan Cameron wrote: > > > On Fri, 23 Feb 2024 11:41:51 -0600 > > > John Groves wrote: > > > > > > > Add

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-26 Thread John Groves
On 24/02/26 07:53AM, Luis Chamberlain wrote: > On Mon, Feb 26, 2024 at 07:27:18AM -0600, John Groves wrote: > > Run status group 0 (all jobs): > > WRITE: bw=29.6GiB/s (31.8GB/s), 29.6GiB/s-29.6GiB/s (31.8GB/s-31.8GB/s), > > io=44.7GiB (48.0GB), run=1511-1511msec > &

Re: [RFC PATCH 09/20] famfs: Add super_operations

2024-02-26 Thread John Groves
On 24/02/26 12:51PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:53 -0600 > John Groves wrote: > > > Introduce the famfs superblock operations > > > > Signed-off-by: John Groves > > --- > > fs/famfs/famfs_inode.c | 72 +++

Re: [RFC PATCH 10/20] famfs: famfs_open_device() & dax_holder_operations

2024-02-26 Thread John Groves
On 24/02/26 12:56PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:54 -0600 > John Groves wrote: > > > Famfs works on both /dev/pmem and /dev/dax devices. This commit introduces > > the function that opens a block (pmem) device and the struct > > dax_holder_ope

Re: [RFC PATCH 11/20] famfs: Add fs_context_operations

2024-02-26 Thread John Groves
On 24/02/26 01:20PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:55 -0600 > John Groves wrote: > > > This commit introduces the famfs fs_context_operations and > > famfs_get_inode() which is used by the context operations. > > > > Signed-off-by: John

Re: [RFC PATCH 12/20] famfs: Add inode_operations and file_system_type

2024-02-26 Thread John Groves
On 24/02/26 01:25PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:56 -0600 > John Groves wrote: > > > This commit introduces the famfs inode_operations. There is nothing really > > unique to famfs here in the inode_operations.. > > > >

Re: [RFC PATCH 13/20] famfs: Add iomap_ops

2024-02-26 Thread John Groves
On 24/02/26 01:30PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:57 -0600 > John Groves wrote: > > > This commit introduces the famfs iomap_ops. When either > > dax_iomap_fault() or dax_iomap_rw() is called, we get a callback > > via our iomap_begin() handler.

Re: [RFC PATCH 14/20] famfs: Add struct file_operations

2024-02-26 Thread John Groves
On 24/02/26 01:32PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:58 -0600 > John Groves wrote: > > > This commit introduces the famfs file_operations. We call > > thp_get_unmapped_area() to force PMD page alignment. Our read and > > write handlers

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-26 Thread John Groves
On 24/02/26 04:58PM, Luis Chamberlain wrote: > On Mon, Feb 26, 2024 at 1:16 PM John Groves wrote: > > > > On 24/02/26 07:53AM, Luis Chamberlain wrote: > > > On Mon, Feb 26, 2024 at 07:27:18AM -0600, John Groves wrote: > > > > Run status group 0 (all jobs): >

Re: [RFC PATCH 08/20] famfs: Add famfs_internal.h

2024-02-27 Thread John Groves
On 24/02/27 02:38PM, Christian Brauner wrote: > On Fri, Feb 23, 2024 at 11:41:52AM -0600, John Groves wrote: > > Add the famfs_internal.h include file. This contains internal data > > structures such as the per-file metadata structure (famfs_file_meta) > > and extent formats

Re: [RFC PATCH 09/20] famfs: Add super_operations

2024-02-27 Thread John Groves
On 24/02/26 12:51PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:41:53 -0600 > John Groves wrote: > > + */ > > +static int famfs_show_options( > > + struct seq_file *m, > > + struct dentry *root) > Not that familiar with fs code, but this unusual kerne

Re: [RFC PATCH 10/20] famfs: famfs_open_device() & dax_holder_operations

2024-02-27 Thread John Groves
On 24/02/27 02:39PM, Christian Brauner wrote: > On Fri, Feb 23, 2024 at 11:41:54AM -0600, John Groves wrote: > > Famfs works on both /dev/pmem and /dev/dax devices. This commit introduces > > the function that opens a block (pmem) device and the struct > > dax_holder_operation

Re: [RFC PATCH 17/20] famfs: Add module stuff

2024-02-27 Thread John Groves
On 24/02/26 01:47PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:42:01 -0600 > John Groves wrote: > > > This commit introduces the module init and exit machinery for famfs. > > > > Signed-off-by: John Groves > I'd prefer to see this from the start w

Re: [RFC PATCH 18/20] famfs: Support character dax via the dev_dax_iomap patch

2024-02-27 Thread John Groves
On 24/02/26 01:52PM, Jonathan Cameron wrote: > On Fri, 23 Feb 2024 11:42:02 -0600 > John Groves wrote: > > > This commit introduces the ability to open a character /dev/dax device > > instead of a block /dev/pmem device. This rests on the dev_dax_iomap > > pat

Re: [RFC PATCH 11/20] famfs: Add fs_context_operations

2024-02-27 Thread John Groves
On 24/02/27 02:41PM, Christian Brauner wrote: > On Fri, Feb 23, 2024 at 11:41:55AM -0600, John Groves wrote: > > This commit introduces the famfs fs_context_operations and > > famfs_get_inode() which is used by the context operations. > > > > Signed-off-by: John Gr

Re: [RFC PATCH 08/20] famfs: Add famfs_internal.h

2024-02-27 Thread John Groves
On 24/02/27 10:28AM, Jonathan Cameron wrote: > On Mon, 26 Feb 2024 11:35:17 -0600 > John Groves wrote: > > > On 24/02/26 12:48PM, Jonathan Cameron wrote: > > > On Fri, 23 Feb 2024 11:41:52 -0600 > > > John Groves wrote: > > > > > > >

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-29 Thread John Groves
Hi Dave! On 24/02/29 01:15PM, Dave Chinner wrote: > On Mon, Feb 26, 2024 at 08:05:58PM -0600, John Groves wrote: > > On 24/02/26 04:58PM, Luis Chamberlain wrote: > > > On Mon, Feb 26, 2024 at 1:16 PM John Groves wrote: > > > > > > > > On 24/02/26 07:

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-02-29 Thread John Groves
On 24/02/29 08:52AM, Amir Goldstein wrote: > On Fri, Feb 23, 2024 at 7:42 PM John Groves wrote: > > > > This patch set introduces famfs[1] - a special-purpose fs-dax file system > > for sharable disaggregated or fabric-attached memory (FAM). Famfs is not > >

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-05-21 Thread John Groves
Initial reply to both Amir and Miklos. Sorry for the delay - I took a few days off after LSFMM and I'm just re-engaging now. First an observation: these messages are on the famfs v1 patch set thread. The v2 patch set is at [1]. That is also the default branch now if you clone the famfs kernel from

Re: [RFC PATCH 00/20] Introduce the famfs shared-memory file system

2024-05-22 Thread John Groves
On 24/05/22 10:58AM, Miklos Szeredi wrote: > On Wed, 22 May 2024 at 04:05, John Groves wrote: > > I'm happy to help with that if you care - ping me if so; getting a VM > > running > > in EFI mode is not necessary if you reserve the dax memory via memmap=, or > >

devices.txt question

2017-09-27 Thread John Groves
ing some kernel modules soon, and would be interested in preemptively avoiding /dev name space conflicts if possible, but we don't see any need for an invariant major number. The names we currently use are /dev/mpool[ctl]. Is linux-doc the right list to ask? Any tips appreciated. John Grov

[RFC PATCH 01/19] dev_dax_iomap: Move dax_pgoff_to_phys() from device.c to bus.c

2025-04-20 Thread John Groves
_phys() since both bus.c and device.c now call it. Signed-off-by: John Groves --- drivers/dax/bus.c| 24 drivers/dax/device.c | 23 --- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index fde29e0

[RFC PATCH 00/19] famfs: port into fuse

2025-04-20 Thread John Groves
- https://github.com/cxl-micron-reskit/famfs [3] - https://lore.kernel.org/linux-cxl/cover.1708709155.git.j...@groves.net/ [4] - https://lore.kernel.org/linux-cxl/cover.1714409084.git.j...@groves.net/ [5] - https://lwn.net/Articles/983105/ [6] - https://lore.kernel.org/linux-cxl/cover

[RFC PATCH 04/19] dev_dax_iomap: Add dax_operations for use by fs-dax on devdax

2025-04-20 Thread John Groves
sed for read/write (dax_iomap_rw()) * dev_dax_recovery_write() and dev_dax_zero_page_range() have not been tested yet. I'm looking for suggestions as to how to test those. Signed-off-by: John Groves --- drivers/dax/bus.c | 120 -- 1 file chan

[RFC PATCH 05/19] dev_dax_iomap: export dax_dev_get()

2025-04-20 Thread John Groves
famfs needs access to dev_dax_get() Signed-off-by: John Groves --- drivers/dax/super.c | 3 ++- include/linux/dax.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/dax/super.c b/drivers/dax/super.c index 48bab9b5f341..033fd841c2bb 100644 --- a/drivers/dax/super.c

[RFC PATCH 02/19] dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usage

2025-04-20 Thread John Groves
device. This also adds the CONFIG_DEV_DAX_IOMAP Kconfig parameter Signed-off-by: John Groves --- drivers/dax/Kconfig | 6 ++ drivers/dax/super.c | 30 ++ include/linux/dax.h | 5 + 3 files changed, 41 insertions(+) diff --git a/drivers/dax/Kconfig b/drivers/dax

[RFC PATCH 03/19] dev_dax_iomap: Save the kva from memremap

2025-04-20 Thread John Groves
ge tables, but this works in all known cases. Signed-off-by: John Groves --- drivers/dax/dax-private.h | 1 + drivers/dax/device.c | 15 +++ 2 files changed, 16 insertions(+) diff --git a/drivers/dax/dax-private.h b/drivers/dax/dax-private.h index 0867115aeef2..2a6b07813f9f 10064

[RFC PATCH 12/19] famfs_fuse: Plumb the GET_FMAP message/response

2025-04-20 Thread John Groves
Upon completion of a LOOKUP, if we're in famfs-mode we do a GET_FMAP to retrieve and cache up the file-to-dax map in the kernel. If this succeeds, read/write/mmap are resolved direct-to-dax with no upcalls. Signed-off-by: John Groves --- fs/fuse/dir.c

[RFC PATCH 08/19] famfs_fuse: Kconfig

2025-04-20 Thread John Groves
Add FUSE_FAMFS_DAX config parameter, to control compilation of famfs within fuse. Signed-off-by: John Groves --- fs/fuse/Kconfig | 13 + 1 file changed, 13 insertions(+) diff --git a/fs/fuse/Kconfig b/fs/fuse/Kconfig index ca215a3cba3e..e6d554f2a21c 100644 --- a/fs/fuse/Kconfig

[RFC PATCH 09/19] famfs_fuse: Update macro s/FUSE_IS_DAX/FUSE_IS_VIRTIO_DAX/

2025-04-20 Thread John Groves
Virtio_fs now needs to determine if an inode is DAX && not famfs. Signed-off-by: John Groves --- fs/fuse/dir.c| 2 +- fs/fuse/file.c | 13 - fs/fuse/fuse_i.h | 6 +- fs/fuse/inode.c | 2 +- fs/fuse/iomode.c | 2 +- 5 files changed, 16 insertions(+), 9 d

[RFC PATCH 11/19] famfs_fuse: Basic famfs mount opts

2025-04-20 Thread John Groves
* -o shadow= * -o daxdev= Signed-off-by: John Groves --- fs/fuse/fuse_i.h | 8 +++- fs/fuse/inode.c | 25 - 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index b2c563b1a1c8..931613102d32 100644 --- a/fs/fuse

[RFC PATCH 10/19] famfs_fuse: Basic fuse kernel ABI enablement for famfs

2025-04-20 Thread John Groves
* FUSE_DAX_FMAP flag in INIT request/reply * fuse_conn->famfs_iomap (enable famfs-mapped files) to denote a famfs-enabled connection Signed-off-by: John Groves --- fs/fuse/fuse_i.h | 3 +++ fs/fuse/inode.c | 5 + include/uapi/linux/fuse.h | 2 ++ 3 files changed,

[RFC PATCH 07/19] famfs_fuse: magic.h: Add famfs magic numbers

2025-04-20 Thread John Groves
Famfs distinguishes between its on-media and in-memory superblocks Signed-off-by: John Groves --- include/uapi/linux/magic.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/linux/magic.h b/include/uapi/linux/magic.h index bb575f3ab45e..ee497665d8d7 100644 --- a/include/uapi

[RFC PATCH 06/19] dev_dax_iomap: (ignore!) Drop poisoned page warning in fs/dax.c

2025-04-20 Thread John Groves
This just works around a the "poisoned page" warning that will be properly fixed in a future version of this patch set. Please ignore for the moment. Signed-off-by: John Groves --- fs/dax.c | 1 - 1 file changed, 1 deletion(-) diff --git a/fs/dax.c b/fs/dax.c index 21b47402b3dc..63

[RFC PATCH 14/19] famfs_fuse: GET_DAXDEV message and daxdev_table

2025-04-20 Thread John Groves
* The new GET_DAXDEV message/response is enabled * The command it triggered by the update_daxdev_table() call, if there are any daxdevs in the subject fmap that are not represented in the daxdev_dable yet. Signed-off-by: John Groves --- fs/fuse/famfs.c | 281

[RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps

2025-04-20 Thread John Groves
On completion of GET_FMAP message/response, setup the full famfs metadata such that it's possible to handle read/write/mmap directly to dax. Note that the devdax_iomap plumbing is not in yet... Update MAINTAINERS for the new files. Signed-off-by: John Groves --- MAINTAINERS

[RFC PATCH 15/19] famfs_fuse: Plumb dax iomap and fuse read/write/mmap

2025-04-20 Thread John Groves
This commit fills in read/write/mmap handling for famfs files. The dev_dax_iomap interface is used - just like xfs in fs-dax mode. Signed-off-by: John Groves --- fs/fuse/famfs.c | 432 fs/fuse/file.c | 14 ++ 2 files changed, 446 insertions

[RFC PATCH 16/19] famfs_fuse: Add holder_operations for dax notify_failure()

2025-04-20 Thread John Groves
If we get a notify_failure() call on a daxdev, set its error flag and prevent further access to that device. Signed-off-by: John Groves --- fs/fuse/famfs.c | 154 ++- fs/fuse/file.c | 6 +- fs/fuse/fuse_i.h | 6 +- 3 files changed, 117

[RFC PATCH 18/19] famfs_fuse: Add documentation

2025-04-20 Thread John Groves
Add Documentation/filesystems/famfs.rst and update MAINTAINERS Signed-off-by: John Groves --- Documentation/filesystems/famfs.rst | 142 Documentation/filesystems/index.rst | 1 + MAINTAINERS | 1 + 3 files changed, 144 insertions

[RFC PATCH 17/19] famfs_fuse: Add famfs metadata documentation

2025-04-20 Thread John Groves
From: John Groves This describes the fmap metadata - both simple and interleaved Signed-off-by: John Groves --- fs/fuse/famfs_kfmap.h | 90 --- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/fs/fuse/famfs_kfmap.h b/fs/fuse/famfs_kfmap.h

[RFC PATCH 19/19] famfs_fuse: (ignore) debug cruft

2025-04-20 Thread John Groves
This debug cruft will be dropped from the "real" patch set Signed-off-by: John Groves --- fs/fuse/Makefile | 2 +- fs/fuse/dev.c| 61 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/fs/fuse/Makefile b/fs/fuse/Make

Re: [RFC PATCH 00/19] famfs: port into fuse

2025-04-22 Thread John Groves
On 25/04/21 06:25PM, Darrick J. Wong wrote: > On Mon, Apr 21, 2025 at 05:00:35PM -0500, John Groves wrote: > > On 25/04/21 11:27AM, Darrick J. Wong wrote: > > > On Sun, Apr 20, 2025 at 08:33:27PM -0500, John Groves wrote: > > > > Subject: famfs: port into fuse > &

Re: [RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps

2025-04-27 Thread John Groves
On 25/04/24 07:38AM, Darrick J. Wong wrote: > On Thu, Apr 24, 2025 at 08:43:33AM -0500, John Groves wrote: > > On 25/04/20 08:33PM, John Groves wrote: > > > On completion of GET_FMAP message/response, setup the full famfs > > > metadata such that it's possible to ha

Re: [RFC PATCH 18/19] famfs_fuse: Add documentation

2025-04-27 Thread John Groves
On 25/04/21 07:10PM, Randy Dunlap wrote: > > > On 4/20/25 6:33 PM, John Groves wrote: > > Add Documentation/filesystems/famfs.rst and update MAINTAINERS > > > > Signed-off-by: John Groves > > --- > > Documentation/filesystems/famfs.rst | 142

Re: [RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps

2025-04-24 Thread John Groves
On 25/04/20 08:33PM, John Groves wrote: > On completion of GET_FMAP message/response, setup the full famfs > metadata such that it's possible to handle read/write/mmap directly to > dax. Note that the devdax_iomap plumbing is not in yet... > > Update MAINTAINERS for the new fi

Re: [RFC PATCH 00/19] famfs: port into fuse

2025-04-30 Thread John Groves
On 25/04/30 03:42PM, Alireza Sanaee wrote: > On Sun, 20 Apr 2025 20:33:27 -0500 > John Groves wrote: > >> > > Hi John, > > Apologies if the question is far off or irrelevant. > > I am trying to understand FAMFS, and I am thinking where does FAMFS > s

Re: [RFC PATCH 11/19] famfs_fuse: Basic famfs mount opts

2025-04-23 Thread John Groves
On 25/04/22 06:51PM, Joanne Koong wrote: > On Sun, Apr 20, 2025 at 6:34 PM John Groves wrote: > > > > * -o shadow= > > * -o daxdev= > > > > Signed-off-by: John Groves > > --- > > fs/fuse/fuse_i.h | 8 +++- > > fs/fuse/inode.c | 25

Re: [RFC PATCH 10/19] famfs_fuse: Basic fuse kernel ABI enablement for famfs

2025-04-23 Thread John Groves
On 25/04/22 06:36PM, Joanne Koong wrote: > On Sun, Apr 20, 2025 at 6:34 PM John Groves wrote: > > > > * FUSE_DAX_FMAP flag in INIT request/reply > > > > * fuse_conn->famfs_iomap (enable famfs-mapped files) to denote a > > famfs-enabled connectio

Re: [RFC PATCH 14/19] famfs_fuse: GET_DAXDEV message and daxdev_table

2025-04-21 Thread John Groves
On 25/04/20 08:43PM, Randy Dunlap wrote: > Hi, Hi Randy - thanks for the review! > > On 4/20/25 6:33 PM, John Groves wrote: > > * The new GET_DAXDEV message/response is enabled > > * The command it triggered by the update_daxdev_table() call, if there > > are any

Re: [RFC PATCH 17/19] famfs_fuse: Add famfs metadata documentation

2025-04-21 Thread John Groves
On 25/04/20 08:51PM, Randy Dunlap wrote: > > good edits... Caching them into a branch for the next versions Thank you! John

Re: [RFC PATCH 00/19] famfs: port into fuse

2025-04-21 Thread John Groves
On 25/04/21 11:27AM, Darrick J. Wong wrote: > On Sun, Apr 20, 2025 at 08:33:27PM -0500, John Groves wrote: > > Subject: famfs: port into fuse > > > > This is the initial RFC for the fabric-attached memory file system (famfs) > > integration into fuse. In order to functi

Re: [RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps

2025-04-21 Thread John Groves
On 25/04/21 02:57PM, Darrick J. Wong wrote: > On Sun, Apr 20, 2025 at 08:33:40PM -0500, John Groves wrote: > > On completion of GET_FMAP message/response, setup the full famfs > > metadata such that it's possible to handle read/write/mmap directly to > > dax. Note that th

Re: [RFC PATCH 13/19] famfs_fuse: Create files with famfs fmaps

2025-05-12 Thread John Groves
On 25/05/06 06:56PM, Miklos Szeredi wrote: > On Mon, 28 Apr 2025 at 21:00, Darrick J. Wong wrote: > > > I don't know what Miklos' opinion is about having multiple > > fusecmds that do similar things -- on the one hand keeping yours and my > > efforts separate explodes the amount of userspace abi

Re: [RFC PATCH 12/19] famfs_fuse: Plumb the GET_FMAP message/response

2025-05-12 Thread John Groves
On 25/05/01 10:48PM, Joanne Koong wrote: > On Sun, Apr 20, 2025 at 6:34 PM John Groves wrote: > > > > Upon completion of a LOOKUP, if we're in famfs-mode we do a GET_FMAP to > > retrieve and cache up the file-to-dax map in the kernel. If this > > succeeds, read/w

Re: [RFC PATCH 00/19] famfs: port into fuse

2025-05-21 Thread John Groves
On 25/04/20 08:33PM, John Groves wrote: > Subject: famfs: port into fuse > > I'm planning to apply the review comments and send v2 of this patch series soon - hopefully next week. I asked a couple of specific questions for Miklos and Amir at [1] that I hope they will answer in the

Re: [RFC PATCH 12/19] famfs_fuse: Plumb the GET_FMAP message/response

2025-05-22 Thread John Groves
On 25/05/22 05:45PM, Amir Goldstein wrote: > On Mon, May 12, 2025 at 6:28 PM John Groves wrote: > > > > On 25/05/01 10:48PM, Joanne Koong wrote: > > > On Sun, Apr 20, 2025 at 6:34 PM John Groves wrote: > > > > > > > > Upon completion of a LO

Re: [RFC V2 10/18] famfs_fuse: Basic fuse kernel ABI enablement for famfs

2025-07-04 Thread John Groves
On 25/07/04 09:54AM, Amir Goldstein wrote: > On Thu, Jul 3, 2025 at 8:51 PM John Groves wrote: > > > > * FUSE_DAX_FMAP flag in INIT request/reply > > > > * fuse_conn->famfs_iomap (enable famfs-mapped files) to denote a > > famfs-enabled connectio

Re: [RFC V2 02/18] dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usage

2025-07-04 Thread John Groves
On 25/07/04 11:39AM, Jonathan Cameron wrote: > On Thu, 3 Jul 2025 13:50:16 -0500 > John Groves wrote: > > > This function should be called by fs-dax file systems after opening the > > devdax device. This adds holder_operations, which effects exclusivity > > be

Re: [RFC V2 10/18] famfs_fuse: Basic fuse kernel ABI enablement for famfs

2025-07-08 Thread John Groves
On 25/07/07 10:39AM, Darrick J. Wong wrote: > On Fri, Jul 04, 2025 at 08:39:59AM -0500, John Groves wrote: > > On 25/07/04 09:54AM, Amir Goldstein wrote: > > > On Thu, Jul 3, 2025 at 8:51 PM John Groves wrote: > > > > > > > > * FUSE_DAX_FMAP flag in INIT

Re: [RFC V2 12/18] famfs_fuse: Plumb the GET_FMAP message/response

2025-07-04 Thread John Groves
On 25/07/04 03:30PM, John Groves wrote: > On 25/07/04 10:54AM, Amir Goldstein wrote: > > On Thu, Jul 3, 2025 at 8:51 PM John Groves wrote: > > > > > > Upon completion of an OPEN, if we're in famfs-mode we do a GET_FMAP to > > > retrieve and cache up t

Re: [RFC V2 12/18] famfs_fuse: Plumb the GET_FMAP message/response

2025-07-11 Thread John Groves
On 25/07/08 09:27PM, Darrick J. Wong wrote: > On Thu, Jul 03, 2025 at 01:50:26PM -0500, John Groves wrote: > > Upon completion of an OPEN, if we're in famfs-mode we do a GET_FMAP to > > retrieve and cache up the file-to-dax map in the kernel. If this > > succeeds, re

Re: [RFC V2 00/18] famfs: port into fuse

2025-07-10 Thread John Groves
On 25/07/09 05:26AM, Miklos Szeredi wrote: > On Thu, 3 Jul 2025 at 20:56, John Groves wrote: > > > > DERP: I did it again; Miklos' email is wrong in this series. > > linux-fsdevel also lands in my inbox, so I don't even notice. > > I won't get to

Re: [RFC V2 10/18] famfs_fuse: Basic fuse kernel ABI enablement for famfs

2025-07-10 Thread John Groves
On 25/07/08 06:53PM, Darrick J. Wong wrote: > On Tue, Jul 08, 2025 at 07:02:03AM -0500, John Groves wrote: > > On 25/07/07 10:39AM, Darrick J. Wong wrote: > > > On Fri, Jul 04, 2025 at 08:39:59AM -0500, John Groves wrote: > > > > On 25/07/04 09:54AM, Amir Goldstein

Re: [RFC V2 11/18] famfs_fuse: Basic famfs mount opts

2025-07-11 Thread John Groves
On 25/07/08 08:59PM, Darrick J. Wong wrote: > On Thu, Jul 03, 2025 at 01:50:25PM -0500, John Groves wrote: > > * -o shadow= > > What is a shadow? > > > * -o daxdev= Derp - OK, that's a stale commit message. Here is the one for the -next version of this patch:

[RFC V2 00/18] famfs: port into fuse

2025-07-03 Thread John Groves
et/Articles/983105/ [6] - https://lore.kernel.org/linux-cxl/cover.8068ad144a7eea4a813670301f4d2a86a8e68ec4.1740713401.git-series.apop...@nvidia.com/ John Groves (18): dev_dax_iomap: Move dax_pgoff_to_phys() from device.c to bus.c dev_dax_iomap: Add fs_dax_get() func to prepare dax for fs-dax usa

[RFC V2 01/18] dev_dax_iomap: Move dax_pgoff_to_phys() from device.c to bus.c

2025-07-03 Thread John Groves
_phys() since both bus.c and device.c now call it. Signed-off-by: John Groves --- drivers/dax/bus.c| 24 drivers/dax/device.c | 23 --- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/drivers/dax/bus.c b/drivers/dax/bus.c index fde29e0

  1   2   >