linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/5] RPC client latency fixes
@ 2017-08-16 23:00 Trond Myklebust
  2017-08-16 23:00 ` [PATCH v3 1/5] SUNRPC: Don't hold the transport lock across socket copy operations Trond Myklebust
  0 siblings, 1 reply; 9+ messages in thread
From: Trond Myklebust @ 2017-08-16 23:00 UTC (permalink / raw)
  To: linux-nfs

The following patches apply on top of the writeback patches sent last
week. They start the process of reducing contention in the RPC client
receive code due to excessive holding of the transport lock.

The first patch is the most important in that it allows the client to
drop the transport lock while copying data from the socket into the
RPC call's reply buffers.
The second ensures that we don't keep hogging the workqueue worker thread
forever, but that we reschedule the receive job if it keeps looping.
Finally, a small cleanup to avoid having to make a copy of the
struct xdr_skb_reader on the stack.

v2: Reorder patches to add I/O throttling after the core RPC latency
changes
    Fix a crash when receiving backchannel requests.

v3: Another bugfix for backchannel requests.
    Add a separate spinlock to protect the RPC request receive list

Trond Myklebust (5):
  SUNRPC: Don't hold the transport lock across socket copy operations
  SUNRPC: Don't hold the transport lock when receiving backchannel data
  SUNRPC: Don't loop forever in xs_tcp_data_receive()
  SUNRPC: Cleanup xs_tcp_read_common()
  SUNRPC: Add a separate spinlock to protect the RPC request receive
    list

 include/linux/sunrpc/sched.h   |  2 ++
 include/linux/sunrpc/xprt.h    |  3 ++
 net/sunrpc/backchannel_rqst.c  |  4 +--
 net/sunrpc/xprt.c              | 55 +++++++++++++++++++++++++---
 net/sunrpc/xprtrdma/rpc_rdma.c |  8 ++---
 net/sunrpc/xprtsock.c          | 82 ++++++++++++++++++++++--------------------
 6 files changed, 105 insertions(+), 49 deletions(-)

-- 
2.13.5


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

end of thread, other threads:[~2017-08-18 18:26 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-16 23:00 [PATCH v3 0/5] RPC client latency fixes Trond Myklebust
2017-08-16 23:00 ` [PATCH v3 1/5] SUNRPC: Don't hold the transport lock across socket copy operations Trond Myklebust
2017-08-16 23:00   ` [PATCH v3 2/5] SUNRPC: Don't hold the transport lock when receiving backchannel data Trond Myklebust
2017-08-16 23:00     ` [PATCH v3 3/5] SUNRPC: Don't loop forever in xs_tcp_data_receive() Trond Myklebust
2017-08-16 23:00       ` [PATCH v3 4/5] SUNRPC: Cleanup xs_tcp_read_common() Trond Myklebust
2017-08-16 23:00         ` [PATCH v3 5/5] SUNRPC: Add a separate spinlock to protect the RPC request receive list Trond Myklebust
2017-08-17  1:52           ` Chuck Lever
2017-08-18 18:11           ` Chuck Lever
2017-08-18 18:26             ` Trond Myklebust

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).