diff options
author | Sebastian Sanchez <sebastian.sanchez@intel.com> | 2018-05-02 06:43:39 -0700 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2018-05-09 15:53:30 -0400 |
commit | af8aab71370a692eaf7e7969ba5b1a455ac20113 (patch) | |
tree | 5ea7da221cc96d1f819c87870589fca3a5d21f83 /tools/perf/scripts/python/export-to-sqlite.py | |
parent | c872a1f9e3aaf51b091ff19ef6cb1e1a298f3c90 (diff) |
IB/hfi1: Optimize kthread pointer locking when queuing CQ entries
All threads queuing CQ entries on different CQs are unnecessarily
synchronized by a spin lock to check if the CQ kthread worker hasn't
been destroyed before queuing an CQ entry.
The lock used in 6efaf10f163d ("IB/rdmavt: Avoid queuing work into a
destroyed cq kthread worker") is a device global lock and will have
poor performance at scale as completions are entered from a large
number of CPUs.
Convert to use RCU where the read side of RCU is rvt_cq_enter() to
determine that the worker is alive prior to triggering the
completion event.
Apply write side RCU semantics in rvt_driver_cq_init() and
rvt_cq_exit().
Fixes: 6efaf10f163d ("IB/rdmavt: Avoid queuing work into a destroyed cq kthread worker")
Cc: <stable@vger.kernel.org> # 4.14.x
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Sebastian Sanchez <sebastian.sanchez@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-sqlite.py')
0 files changed, 0 insertions, 0 deletions