diff options
author | Mike Marciniszyn <mike.marciniszyn@intel.com> | 2019-06-14 19:32:26 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2019-06-18 04:15:40 +0300 |
commit | cf131a81967583ae737df6383a0893b9fee75b4e (patch) | |
tree | 8ebb349f62700de5878a2919070031878de90f50 /drivers/infiniband/core/addr.c | |
parent | cc78076af14e1478c1a8fb18997674b5f8cbe3c8 (diff) | |
download | linux-cf131a81967583ae737df6383a0893b9fee75b4e.tar.xz |
IB/hfi1: Avoid hardlockup with flushlist_lock
Heavy contention of the sde flushlist_lock can cause hard lockups at
extreme scale when the flushing logic is under stress.
Mitigate by replacing the item at a time copy to the local list with
an O(1) list_splice_init() and using the high priority work queue to
do the flushes.
Fixes: 7724105686e7 ("IB/hfi1: add driver files")
Cc: <stable@vger.kernel.org>
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>
Diffstat (limited to 'drivers/infiniband/core/addr.c')
0 files changed, 0 insertions, 0 deletions