linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] NFS: Improvements for the NFSv4.2 READ_PLUS operation
@ 2022-07-21 18:21 Anna Schumaker
  2022-07-21 18:21 ` [PATCH v3 1/5] SUNRPC: Introduce xdr_stream_move_subsegment() Anna Schumaker
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Anna Schumaker @ 2022-07-21 18:21 UTC (permalink / raw)
  To: linux-nfs, trond.myklebust; +Cc: anna

From: Anna Schumaker <Anna.Schumaker@Netapp.com>

Previously, decoding was a one step process that expanded holes as they
were seen in the buffer. This had a few undesireable side effects:

1) An extra READ_PLUS call was often needed to fetch any data shifted
   off the end of the buffer when the last two segments are a HOLE
   followed by DATA
2) We shifted the entire remaining buffer for each hole, meaning some
   segments would get moved multiple times during one decode pass.

These patches attempt to address this by turning READ_PLUS decoding into
a two-step process. First, we build up a list of each segment returned
by the server, then we walk the list in reverse and move each segment
directly to their target offset. This cuts out all the extra copying,
and means we won't lose any data off of the end of the reply.

Changes in V3:
  - Move the "Introduce xdr_stream_move_subsegment()" patch into this
    series so it can be applied now while work on the server side
    continues.
  - Drop the patch removing the Kconfig option at Trond's suggestion.

Thoughts?
Anna


Anna Schumaker (5):
  SUNRPC: Introduce xdr_stream_move_subsegment()
  SUNRPC: Add a function for directly setting the xdr page len
  SUNRPC: Add a function for zeroing out a portion of an xdr_stream
  NFS: Replace the READ_PLUS decoding code
  SUNRPC: Remove xdr_align_data() and xdr_expand_hole()

 fs/nfs/nfs42xdr.c          | 168 ++++++++++++++++++------------------
 include/linux/sunrpc/xdr.h |   7 +-
 net/sunrpc/xdr.c           | 170 +++++++++++++++++++++++--------------
 3 files changed, 200 insertions(+), 145 deletions(-)

-- 
2.37.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-07-21 18:21 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-21 18:21 [PATCH v3 0/5] NFS: Improvements for the NFSv4.2 READ_PLUS operation Anna Schumaker
2022-07-21 18:21 ` [PATCH v3 1/5] SUNRPC: Introduce xdr_stream_move_subsegment() Anna Schumaker
2022-07-21 18:21 ` [PATCH v3 2/5] SUNRPC: Add a function for directly setting the xdr page len Anna Schumaker
2022-07-21 18:21 ` [PATCH v3 3/5] SUNRPC: Add a function for zeroing out a portion of an xdr_stream Anna Schumaker
2022-07-21 18:21 ` [PATCH v3 4/5] NFS: Replace the READ_PLUS decoding code Anna Schumaker
2022-07-21 18:21 ` [PATCH v3 5/5] SUNRPC: Remove xdr_align_data() and xdr_expand_hole() Anna Schumaker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).