diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-07-24 23:59:31 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2014-07-29 16:10:15 -0400 |
commit | 0971374e2818eef6ebdbd7a37acf6ab7e98ac06c (patch) | |
tree | 87ca80081f794d3b18bc301dc570b9403f39ee4f /net/core/netpoll.c | |
parent | 650ecc8f8ff29a7f0990704f09df232b505b200d (diff) |
SUNRPC: Reduce contention in svc_xprt_enqueue()
Ensure that all calls to svc_xprt_enqueue() except svc_xprt_received()
check the value of XPT_BUSY, before attempting to grab spinlocks etc.
This is to avoid situations such as the following "perf" trace,
which shows heavy contention on the pool spinlock:
54.15% nfsd [kernel.kallsyms] [k] _raw_spin_lock_bh
|
--- _raw_spin_lock_bh
|
|--71.43%-- svc_xprt_enqueue
| |
| |--50.31%-- svc_reserve
| |
| |--31.35%-- svc_xprt_received
| |
| |--18.34%-- svc_tcp_data_ready
...
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'net/core/netpoll.c')
0 files changed, 0 insertions, 0 deletions