OpenCloudOS-Kernel/drivers/infiniband/hw
Mike Marciniszyn 551ace124d IB/qib: Reduce sdma_lock contention
Profiling has shown that sdma_lock is proving a bottleneck for
performance. The situations include:
 - RDMA reads when krcvqs > 1
 - post sends from multiple threads

For RDMA read the current global qib_wq mechanism runs on all CPUs
and contends for the sdma_lock when multiple RMDA read requests are
fielded on differenct CPUs. For post sends, the direct call to
qib_do_send() from multiple threads causes the contention.

Since the sdma mechanism is per port, this fix converts the existing
workqueue to a per port single thread workqueue to reduce the lock
contention in the RDMA read case, and for any other case where the QP
is scheduled via the workqueue mechanism from more than 1 CPU.

For the post send case, This patch modifies the post send code to test
for a non empty sdma engine.  If the sdma is not idle the (now single
thread) workqueue will be used to trigger the send engine instead of
the direct call to qib_do_send().

Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-07-19 11:19:58 -07:00
..
amso1100 IB: Use central enum for speed instead of hard-coded values 2012-03-05 09:25:16 -08:00
cxgb3 Merge branches 'cma', 'cxgb3', 'cxgb4', 'ehca', 'iser', 'mad', 'nes', 'qib', 'srp' and 'srpt' into for-next 2012-03-19 09:50:33 -07:00
cxgb4 RDMA/cxgb4: Fix crash when peer address is 0.0.0.0 2012-06-03 22:59:15 -07:00
ehca Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ipath IB/ipath: Replace open-coded ARRAY_SIZE with macro 2012-05-08 11:17:20 -07:00
mlx4 IB/mlx4: Fix max_wqe capacity reported from query device 2012-06-06 10:08:03 -07:00
mthca IB: Change CQE "csum_ok" field to a bit flag 2012-03-08 12:34:27 -08:00
nes RDMA/nes: Don't call event handler if pointer is NULL 2012-05-14 12:48:07 -07:00
ocrdma RDMA/ocrdma: Fix off by one in ocrdma_query_gid() 2012-06-14 13:30:41 -07:00
qib IB/qib: Reduce sdma_lock contention 2012-07-19 11:19:58 -07:00