diff options
author | Dean Luick <dean.luick@intel.com> | 2015-10-26 10:28:44 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-10-27 17:45:51 +0900 |
commit | f4f30031c33cdff10c87d0a56ef575508ed7b54d (patch) | |
tree | e44c81de497867e1f02fe989e85a9bbabfe687a8 /drivers/staging/rdma/hfi1/sdma.c | |
parent | b77d713a310b5c6eba13e9c394bcf0b085c4a49d (diff) |
staging/rdma/hfi1: Thread the receive interrupt.
When under heavy load, the receive interrupt handler can run too long with IRQs
disabled. Add a mixed-mode threading scheme. Initially process packets in the
handler for quick responses (latency). If there are too many packets to
process move to a thread to continue (bandwidth).
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rdma/hfi1/sdma.c')
-rw-r--r-- | drivers/staging/rdma/hfi1/sdma.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/rdma/hfi1/sdma.c b/drivers/staging/rdma/hfi1/sdma.c index f372b6d00e9d..2a1da2189900 100644 --- a/drivers/staging/rdma/hfi1/sdma.c +++ b/drivers/staging/rdma/hfi1/sdma.c @@ -2096,9 +2096,9 @@ unlock_noconn: tx->sn = sde->tail_sn++; trace_hfi1_sdma_in_sn(sde, tx->sn); #endif - spin_lock_irqsave(&sde->flushlist_lock, flags); + spin_lock(&sde->flushlist_lock); list_add_tail(&tx->list, &sde->flushlist); - spin_unlock_irqrestore(&sde->flushlist_lock, flags); + spin_unlock(&sde->flushlist_lock); if (wait) { wait->tx_count++; wait->count += tx->num_desc; |