[PATCH rdma-next v1 0/2] Let IB core distribute cache update events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Leon Romanovsky <leonro@xxxxxxxxxxxx>

Changelog:
v0->v1: https://lore.kernel.org/linux-rdma/20191020065427.8772-1-leon@xxxxxxxxxx
 - Instead of conditionally notifying event in wq, always use WQ
   This will allow to simplify the IB core and ULPs to get rid of
   additional work.
 - Updated kdoc comment to reflect the notifier execution context.

--------------------------------------------------------------------------------------
>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


Parav Pandit (2):
  IB/core: Let IB core distribute cache update events
  IB/core: Cut down single member ib_cache structure

 drivers/infiniband/core/cache.c     | 114 +++++++++++++---------------
 drivers/infiniband/core/core_priv.h |   2 +
 drivers/infiniband/core/device.c    |  27 ++++---
 include/rdma/ib_verbs.h             |   8 +-
 4 files changed, 74 insertions(+), 77 deletions(-)

--
2.20.1




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux