Re: [RFC PATCH v2 1/1] misc: fgds: introduce GPU-File direct I/O via dma-buf
From: Jens Axboe
Date: Tue Oct 27 2026 - 09:18:02 EST
On 10/27/26 3:08 AM, Li Wang wrote:
> From: Mengmeng Zhao <zhaomengmeng@xxxxxxxxxx>
>
> This patch introduces a driver that allows moving data between a GPU
> dma-buf and a regular file on NVME without staging it through the page
> cache. Userspace registers the GPU dma-buf with the device, then issues
> read and write requests via the device's ioctls. Each transfer is direct
> I/O: an ITER_DMABUF_MAP iterator is passed to the file's read_iter or
> write_iter, and the filesystem's iomap path submits REQ_DMABUF bios that
> already carry the dma addresses.
>
> Signed-off-by: Mengmeng Zhao <zhaomengmeng@xxxxxxxxxx>
> Signed-off-by: Li Wang <liwang@xxxxxxxxxx>
> ---
> .../userspace-api/ioctl/ioctl-number.rst | 2 +
> drivers/dma-buf/dma-buf-io.c | 3 +
> drivers/misc/Kconfig | 16 +
> drivers/misc/Makefile | 1 +
> drivers/misc/fgds.c | 506 ++++++++++++++++++
> fs/iomap/buffered-io.c | 11 +
> fs/iomap/direct-io.c | 23 +-
> fs/xfs/xfs_file.c | 4 +
> include/linux/iov_iter.h | 4 +
> include/uapi/linux/fgds.h | 124 +++++
> lib/iov_iter.c | 1 +
> mm/filemap.c | 22 +-
> 12 files changed, 713 insertions(+), 4 deletions(-)
> create mode 100644 drivers/misc/fgds.c
> create mode 100644 include/uapi/linux/fgds.h
What's the point of this, when you can just use io_uring to do
the same?!
--
Jens Axboe