Hi, NFS and LOCALIO in particular benefit from avoiding the page cache for workloads that have a working set that is significantly larger than available system memory. Enter: NFS DIRECT, which makes it possible to always enable LOCALIO to use O_DIRECT even if the IO is not DIO-aligned. Changes since v6: - Include Trond's 3 LOCALIO fixes that seem to have been forgotten; not related to rest of this patchset other than LOCALIO related. - Patch 4 is a LOCALIO fix that should be picked up for 6.17 too. - Update LOCALIO to not use iov_iter_is_aligned() because it will soon be removed upstream. - Add basic STATX_DIOALIGN and STATX_DIO_READ_ALIGN support Changes since v5: - I split the NFS changes back out for v6 since the NFSD DIRECT changes have started to land in nfsd-testing - With the benefit of having updated the NFSD trace points to use an EVENT_CLASS I have now updated NFS's equivalents to also use one. - Updated patch headers. - Patches 4 and 5, while not strictly needed, are "nice to have" because they evolve the NFS LOCALIO code to a better place. All review appreciated, thanks. Mike Mike Snitzer (8): nfs/localio: avoid bouncing LOCALIO if nfs_client_is_local() nfs/localio: make trace_nfs_local_open_fh more useful nfs/localio: add nfsd_file_dio_alignment nfs/localio: refactor iocb initialization nfs/localio: fallback to NFSD for misaligned O_DIRECT READs nfs/direct: add misaligned READ handling nfs/direct: add misaligned WRITE handling NFS: add basic STATX_DIOALIGN and STATX_DIO_READ_ALIGN support Trond Myklebust (3): NFS/localio: nfs_close_local_fh() fix check for file closed NFS/localio: nfs_uuid_put() fix races with nfs_open/close_local_fh() NFS/localio: nfs_uuid_put() fix the wake up after unlinking the file fs/nfs/direct.c | 258 ++++++++++++++++++++++++++++++++++--- fs/nfs/inode.c | 15 +++ fs/nfs/internal.h | 17 ++- fs/nfs/localio.c | 232 +++++++++++++++++++++------------ fs/nfs/nfstrace.h | 64 ++++++++- fs/nfs/pagelist.c | 22 +++- fs/nfs_common/nfslocalio.c | 28 ++-- fs/nfsd/localio.c | 11 ++ include/linux/nfs_page.h | 1 + include/linux/nfslocalio.h | 2 + 10 files changed, 529 insertions(+), 121 deletions(-) -- 2.44.0