[lkml]   [2018]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH 0/2] Convert IB/mad to use an IDR for agent IDs
From: Matthew Wilcox <>

Compared to the RFC I sent yesterday, this version retains the per-port
spinlock for use when looking up the MAD agent by vendor/class/etc.
Now we should only see a performance improvement relative to the current
code. We should see that improvement two different ways: interrupts
remain enabled and no spinlock is taken when doing a lookup in the IDR,
and we don't walk a linked list looking for the right agent; we just
walk the (low height) tree and find the correct agent.

There are more improvements that could be made, but this fixes the mlx4
bug that Hans reported.

Matthew Wilcox (2):
IB/mad: Agent registration is process context only
IB/mad: Use IDR for agent IDs

drivers/infiniband/core/mad.c | 90 ++++++++++++++++++------------
drivers/infiniband/core/mad_priv.h | 7 ++-
include/linux/idr.h | 9 +++
3 files changed, 66 insertions(+), 40 deletions(-)


 \ /
  Last update: 2018-06-08 19:43    [W:0.108 / U:0.432 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site