On Tue, Oct 27, 2026 at 07:03:29AM -0600, Jens Axboe wrote:
On 10/27/26 3:08 AM, Li Wang wrote:
From: Mengmeng Zhao zhaomengmeng@kylinos.cn
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@kylinos.cn Signed-off-by: Li Wang liwang@kylinos.cn
.../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?!
Agreed, I thought that the summary of the last round of reviews was "this isn't needed at all". Li, what changed from that?
thanks,
greg k-h
linaro-mm-sig@lists.linaro.org