All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH rdma-next 0/3] Let IB core distribute cache update events
@ 2019-10-20  6:54 Leon Romanovsky
  2019-10-20  6:54 ` [PATCH rdma-next 1/3] IB/core: " Leon Romanovsky
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Leon Romanovsky @ 2019-10-20  6:54 UTC (permalink / raw)
  To: Doug Ledford, Jason Gunthorpe
  Cc: Leon Romanovsky, RDMA mailing list, Daniel Jurgens, Parav Pandit

From: Leon Romanovsky <leonro@mellanox.com>

From Parav,

Currently when low level driver notifies Pkey, GID, port change
events, they are notified to the registered handlers in the order
they are registered.

IB core and other ULPs such as IPoIB are interested in GID, LID,
Pkey change events. Since all GID query done by ULPs is serviced
by IB core, IB core is yet to update the GID cache when IPoIB
queries the GID, resulting into not updating IPoIB address.
Detailed flow is shown in the patch-1.

Hence, all events which require cache update are handled first by
the IB core. Once cache update work is completed, IB core distributes
the event to subscriber clients.

This is tested with opensm's /etc/rdma/opensm.conf subnet_prefix
configuration update where before the update

$ ip link show dev ib0
ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
state UP mode DEFAULT group default qlen 256
    link/infiniband
80:00:01:07:fe:80:00:00:00:00:00:00:24:8a:07:03:00:b3:d1:12 brd
00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff

And after the subnet prefix update:

ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2044 qdisc pfifo_fast
state UP mode DEFAULT group default qlen 256
    link/infiniband
80:00:01:07:fe:80:00:00:00:00:00:02:24:8a:07:03:00:b3:d1:12 brd
00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff

Patch-1 fixes the race condition between GID users and GID cache update
Patch-2 eliminates single entry structure
Patch-3 simplifies the code to not generate the event for unregistered device

Parav Pandit (3):
  IB/core: Let IB core distribute cache update events
  IB/core: Cut down single member ib_cache structure
  IB/core: Do not notify GID change event of an unregistered device

 drivers/infiniband/core/cache.c     | 132 ++++++++++++++--------------
 drivers/infiniband/core/core_priv.h |   3 +
 drivers/infiniband/core/device.c    |  26 ++++--
 include/rdma/ib_verbs.h             |   8 +-
 4 files changed, 87 insertions(+), 82 deletions(-)

--
2.20.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2019-10-24 19:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-20  6:54 [PATCH rdma-next 0/3] Let IB core distribute cache update events Leon Romanovsky
2019-10-20  6:54 ` [PATCH rdma-next 1/3] IB/core: " Leon Romanovsky
2019-10-22 19:55   ` Jason Gunthorpe
2019-10-23  5:08     ` Parav Pandit
2019-10-23 17:40       ` Jason Gunthorpe
2019-10-24 19:58         ` Parav Pandit
2019-10-20  6:54 ` [PATCH rdma-next 2/3] IB/core: Cut down single member ib_cache structure Leon Romanovsky
2019-10-20  6:54 ` [PATCH rdma-next 3/3] IB/core: Do not notify GID change event of an unregistered device Leon Romanovsky
2019-10-22 20:00   ` Jason Gunthorpe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.