OSDN Git Service

staging/rdma/hfi1: Use parallel workqueue for SDMA engines
authorMike Marciniszyn <mike.marciniszyn@intel.com>
Tue, 10 Nov 2015 00:13:58 +0000 (19:13 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Nov 2015 00:55:37 +0000 (16:55 -0800)
commit0a226edd203f1209e4ee6e07a6b41a9cfd8beeb8
tree61ec5424ebca8146ea7e832761fefc875c1f6f76
parentc2f3ffb08593d8cf587ee0e4c40197b5eb68bd38
staging/rdma/hfi1: Use parallel workqueue for SDMA engines

The workqueue is currently single threaded per port which for a small number of
SDMA engines is ok.

For hfi1, the there are up to 16 SDMA engines that can be fed descriptors in
parallel.

Use alloc_workqueue with a workqueue limit of the number of sdma engines and
with WQ_CPU_INTENSIVE and WQ_HIGHPRI specified.

Then change send to use the new scheduler which no longer needs to get the
s_lock

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rdma/hfi1/chip.c
drivers/staging/rdma/hfi1/init.c
drivers/staging/rdma/hfi1/iowait.h
drivers/staging/rdma/hfi1/qp.h
drivers/staging/rdma/hfi1/sdma.c
drivers/staging/rdma/hfi1/sdma.h
drivers/staging/rdma/hfi1/verbs.c
drivers/staging/rdma/hfi1/verbs.h