On Tue, Jul 08, 2025 at 12:06:17PM -0400, Mike Snitzer wrote: > Add 'io_cache_read' to NFSD's debugfs interface so that: Any data > read by NFSD will either be: > - cached using page cache (NFSD_IO_BUFFERED=0) > - cached but removed from the page cache upon completion > (NFSD_IO_DONTCACHE=1). > - not cached (NFSD_IO_DIRECT=2) > > io_cache_read is 0 by default. It may be set by writing to: > /sys/kernel/debug/nfsd/io_cache_read > > If NFSD_IO_DONTCACHE is specified using 1, FOP_DONTCACHE must be > advertised as supported by the underlying filesystem (e.g. XFS), > otherwise all IO flagged with RWF_DONTCACHE will fail with > -EOPNOTSUPP. > > If NFSD_IO_DIRECT is specified using 2, the IO must be aligned > relative to the underlying block device's logical_block_size. Also the > memory buffer used to store the read must be aligned relative to the > underlying block device's dma_alignment. Does this also need some kind of check that direct I/O is supported at all by the file system / fops instance?