linux/drivers/infiniband
Mike Marciniszyn a82a7fcd1f IB/hfi1: Process qp wait list in IRQ thread periodically
In the event that the IRQ thread is extremely busy, the
processing of an rcd wait list can be delayed by quite
a bit until the IRQ thread completes its work.

The QP reset reference count wait can then appear to be stuck, thus
causing up a QP destroy to emit the hung task diagnostic.

Fix by processing the qp wait list periodically from the thread.  The
interval is a multiple (currently 4) of the MAX_PKT_RECV.

Also, reduce some of the excessive inlining.   The guidelines
are per packet is ok inline, otherwise the choice is based on
likelyhood of execution.

Reviewed-by: Sebastian Sanchez <sebastian.sanchez@intel.com>
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-02-19 09:18:32 -05:00
..
core Merge branch 'k.o/for-4.10-rc' into HEAD 2017-02-19 09:18:21 -05:00
hw IB/hfi1: Process qp wait list in IRQ thread periodically 2017-02-19 09:18:32 -05:00
sw IB/rxe: use setup_timer to simplify the code 2017-02-19 09:18:31 -05:00
ulp IB/iser: Protect completion context active_qps update 2017-02-19 09:18:31 -05:00
Kconfig RDMA/bnxt_re: Add bnxt_re driver build support 2017-02-14 09:51:28 -05:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00