From: Trond Myklebust <trond.myklebust@primarydata.com>
To: Bruce Fields <bfields@fieldses.org>
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH 00/11] SUNRPC server scalability improvements
Date: Sun, 3 Aug 2014 13:03:02 -0400 [thread overview]
Message-ID: <1407085393-3175-1-git-send-email-trond.myklebust@primarydata.com> (raw)
Hi Bruce,
When testing knfsd on 10GigE and 40GigE networks, we've been hitting a few
scalability issues that are seriously affecting performance. The main issue
was scalability of the pool->sp_lock, but we also hit a couple of things
like the use of ioctls in the receive fast path, as well as some issues
with heuristic tests being performed twice in the same path.
This is not urgent, and can definitely be delayed until the 3.18 merge
window, however since the performance gains were significant over NFSv3,
I thought I'd share now.
Cheers
Trond
Trond Myklebust (11):
SUNRPC: Reduce contention in svc_xprt_enqueue()
SUNRPC: svc_tcp_write_space: don't clear SOCK_NOSPACE prematurely
SUNRPC: Allow svc_reserve() to notify TCP socket that space has been
freed
SUNRPC: Do not override wspace tests in svc_handle_xprt
lockd: Ensure that lockd_start_svc sets the server rq_task...
nfs: Ensure that nfs_callback_start_svc sets the server rq_task...
SUNRPC: Do not grab pool->sp_lock unnecessarily in svc_get_next_xprt
SUNRPC: get rid of the request wait queue
SUNRPC: Fix broken kthread_should_stop test in svc_get_next_xprt
SUNRPC: More optimisations of svc_xprt_enqueue()
SUNRPC: Optimise away svc_recv_available
fs/lockd/svc.c | 2 +
fs/nfs/callback.c | 1 +
include/linux/sunrpc/svc.h | 1 -
include/linux/sunrpc/svc_xprt.h | 1 +
net/sunrpc/svc.c | 2 -
net/sunrpc/svc_xprt.c | 112 ++++++++++++++++++++--------------------
net/sunrpc/svcsock.c | 71 ++++++++++++-------------
7 files changed, 96 insertions(+), 94 deletions(-)
--
1.9.3
next reply other threads:[~2014-08-03 17:03 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-03 17:03 Trond Myklebust [this message]
2014-08-03 17:03 ` [PATCH 01/11] SUNRPC: Reduce contention in svc_xprt_enqueue() Trond Myklebust
2014-08-03 17:03 ` [PATCH 02/11] SUNRPC: svc_tcp_write_space: don't clear SOCK_NOSPACE prematurely Trond Myklebust
2014-08-03 17:03 ` [PATCH 03/11] SUNRPC: Allow svc_reserve() to notify TCP socket that space has been freed Trond Myklebust
2014-08-03 17:03 ` [PATCH 04/11] SUNRPC: Do not override wspace tests in svc_handle_xprt Trond Myklebust
2014-08-03 17:03 ` [PATCH 05/11] lockd: Ensure that lockd_start_svc sets the server rq_task Trond Myklebust
2014-08-03 17:03 ` [PATCH 06/11] nfs: Ensure that nfs_callback_start_svc " Trond Myklebust
2014-08-03 17:03 ` [PATCH 07/11] SUNRPC: Do not grab pool->sp_lock unnecessarily in svc_get_next_xprt Trond Myklebust
2014-08-03 17:03 ` [PATCH 08/11] SUNRPC: get rid of the request wait queue Trond Myklebust
2014-08-03 17:03 ` [PATCH 09/11] SUNRPC: Fix broken kthread_should_stop test in svc_get_next_xprt Trond Myklebust
2014-08-03 17:03 ` [PATCH 10/11] SUNRPC: More optimisations of svc_xprt_enqueue() Trond Myklebust
2014-08-03 17:03 ` [PATCH 11/11] SUNRPC: Optimise away svc_recv_available Trond Myklebust
2014-08-12 19:53 ` [PATCH 08/11] SUNRPC: get rid of the request wait queue Bruce Fields
2014-08-12 20:09 ` Trond Myklebust
2014-08-12 20:23 ` Bruce Fields
2014-08-12 20:54 ` Trond Myklebust
2014-08-12 21:29 ` Bruce Fields
2014-08-12 21:34 ` Trond Myklebust
2014-08-12 19:16 ` [PATCH 04/11] SUNRPC: Do not override wspace tests in svc_handle_xprt Bruce Fields
2014-08-12 19:31 ` Trond Myklebust
2014-08-12 20:04 ` Bruce Fields
2014-08-04 13:36 ` [PATCH 00/11] SUNRPC server scalability improvements Bruce Fields
2014-08-05 20:42 ` Bruce Fields
2014-08-05 21:24 ` Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1407085393-3175-1-git-send-email-trond.myklebust@primarydata.com \
--to=trond.myklebust@primarydata.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).