[RFC PATCH v2 0/8] NFSD: support DIO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

The v1 thread had quite a bit of discussion, and here are some
highlights worth reading to provide background:
jeff's summary: https://lore.kernel.org/linux-nfs/b1accdad470f19614f9d3865bb3a4c69958e5800.camel@xxxxxxxxxx/
performance: https://lore.kernel.org/linux-nfs/aEslwqa9iMeZjjlV@xxxxxxxxxx/

Changes since v1:
- Rebased ontop of Chuck's proposed fh_getattr movement (Chuck, I like
  it so went with it).
- NFSD's expanding of misaligned READ DIO to be DIO-aligned that
  resulted in 'start_extra' blocks being read into associated pages
  caused incorrect data to be returned from NFSD.  This was caught
  using the 'dt' utility.  See patch 8 for more details.
- This v2 patchset has been tested pretty extensively now.

I haven't time to explore Christoph's pagecache idea like I hoped:
https://lore.kernel.org/linux-nfs/aEqEQLumUp8Y7JR5@xxxxxxxxxxxxx/

Any help with hardening against page cache invalidation problems due
to mixing O_DIRECT and buffered IO appreciated. ;)

Thanks,
Mike

ps. I have a LOCALIO patchset that I'll be posting next that benefits
from this NFSD patchset.

Chuck Lever (2):
  NFSD: Relocate the fh_want_write() and fh_drop_write() helpers
  NFSD: Move the fh_getattr() helper

Mike Snitzer (6):
  NFSD: filecache: add STATX_DIOALIGN and STATX_DIO_READ_ALIGN support
  lib/iov_iter: remove piecewise bvec length checking in iov_iter_aligned_bvec
  NFSD: pass nfsd_file to nfsd_iter_read()
  NFSD: add io_cache_read controls to debugfs interface
  NFSD: add io_cache_write controls to debugfs interface
  NFSD: issue READs using O_DIRECT even if IO is misaligned

 fs/nfsd/debugfs.c          |  94 ++++++++++++++++++++++
 fs/nfsd/filecache.c        |  32 ++++++++
 fs/nfsd/filecache.h        |   4 +
 fs/nfsd/nfs4xdr.c          |   8 +-
 fs/nfsd/nfsd.h             |   9 +++
 fs/nfsd/nfsfh.c            |  27 +++++++
 fs/nfsd/nfsfh.h            |  38 +++++++++
 fs/nfsd/trace.h            |  37 +++++++++
 fs/nfsd/vfs.c              | 154 ++++++++++++++++++++++++++++++++++---
 fs/nfsd/vfs.h              |  35 +--------
 include/linux/sunrpc/svc.h |   5 +-
 lib/iov_iter.c             |   5 +-
 12 files changed, 395 insertions(+), 53 deletions(-)

-- 
2.44.0





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux