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

The following 3 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.

Trond Myklebust (3):
  SUNRPC: Don't hold the transport lock across socket copy operations
  SUNRPC: Don't loop forever in xs_tcp_data_receive()
  SUNRPC: Cleanup xs_tcp_read_common()

 include/linux/sunrpc/sched.h |  2 ++
 include/linux/sunrpc/xprt.h  |  2 ++
 net/sunrpc/xprt.c            | 42 ++++++++++++++++++++++++++++
 net/sunrpc/xprtsock.c        | 65 +++++++++++++++++++++++++-------------------
 4 files changed, 83 insertions(+), 28 deletions(-)

-- 
2.13.5


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

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

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-14 19:16 [PATCH 0/3] RPC client latency fixes Trond Myklebust
2017-08-14 19:16 ` [PATCH 1/3] SUNRPC: Don't hold the transport lock across socket copy operations Trond Myklebust
2017-08-14 19:16   ` [PATCH 2/3] SUNRPC: Don't loop forever in xs_tcp_data_receive() Trond Myklebust
2017-08-14 19:16     ` [PATCH 3/3] SUNRPC: Cleanup xs_tcp_read_common() Trond Myklebust
2017-08-14 19:28   ` [PATCH 1/3] SUNRPC: Don't hold the transport lock across socket copy operations Chuck Lever
2017-08-14 20:07     ` Trond Myklebust
2017-08-14 20:23       ` Chuck Lever
2017-08-14 20:38         ` Trond Myklebust
2017-08-14 22:25           ` Chuck Lever
2017-08-15  1:18             ` Trond Myklebust
2017-08-15 14:23               ` Chuck Lever
2017-08-15 15:00                 ` Trond Myklebust
2017-08-15 15:05                   ` Chuck Lever
2017-08-15 16:13                     ` Trond Myklebust
2017-08-15 17:54                       ` Chuck Lever
2017-08-16 15:45   ` Anna Schumaker
2017-08-16 16:05     ` Trond Myklebust

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.