summaryrefslogtreecommitdiffstats
path: root/ipc/compat_mq.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2015-05-26 11:53:13 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2015-06-12 13:10:37 -0400
commit58d1dcf5a8ebb0ce8a521286a99efdd636012bf0 (patch)
tree8fcc6ca4d9a5f1234f9f73acdd0fa0bd20a5e06c /ipc/compat_mq.c
parent7e53df111beea8db2543424d07bdee2a630698c3 (diff)
downloadlinux-58d1dcf5a8ebb0ce8a521286a99efdd636012bf0.tar.gz
linux-58d1dcf5a8ebb0ce8a521286a99efdd636012bf0.tar.bz2
linux-58d1dcf5a8ebb0ce8a521286a99efdd636012bf0.zip
xprtrdma: Split rb_lock
/proc/lock_stat showed contention between rpcrdma_buffer_get/put and the MR allocation functions during I/O intensive workloads. Now that MRs are no longer allocated in rpcrdma_buffer_get(), there's no reason the rb_mws list has to be managed using the same lock as the send/receive buffers. Split that lock. The new lock does not need to disable interrupts because buffer get/put is never called in an interrupt context. struct rpcrdma_buffer is re-arranged to ensure rb_mwlock and rb_mws are always in a different cacheline than rb_lock and the buffer pointers. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Reviewed-by: Steve Wise <swise@opengridcomputing.com> Reviewed-by: Sagi Grimberg <sagig@mellanox.com> Tested-By: Devesh Sharma <devesh.sharma@avagotech.com> Reviewed-by: Doug Ledford <dledford@redhat.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'ipc/compat_mq.c')
0 files changed, 0 insertions, 0 deletions