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>
Showing
- drivers/staging/rdma/hfi1/chip.c 1 addition, 0 deletionsdrivers/staging/rdma/hfi1/chip.c
- drivers/staging/rdma/hfi1/init.c 6 additions, 7 deletionsdrivers/staging/rdma/hfi1/init.c
- drivers/staging/rdma/hfi1/iowait.h 4 additions, 2 deletionsdrivers/staging/rdma/hfi1/iowait.h
- drivers/staging/rdma/hfi1/qp.h 35 additions, 0 deletionsdrivers/staging/rdma/hfi1/qp.h
- drivers/staging/rdma/hfi1/sdma.c 5 additions, 3 deletionsdrivers/staging/rdma/hfi1/sdma.c
- drivers/staging/rdma/hfi1/sdma.h 5 additions, 3 deletionsdrivers/staging/rdma/hfi1/sdma.h
- drivers/staging/rdma/hfi1/verbs.c 4 additions, 16 deletionsdrivers/staging/rdma/hfi1/verbs.c
- drivers/staging/rdma/hfi1/verbs.h 0 additions, 1 deletiondrivers/staging/rdma/hfi1/verbs.h
Loading
Please register or sign in to comment