[PATCH v6 0/4] Dynamic rdma link creation

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

 



This series enables creating soft rdma links dynamically using netlink
messages.  The user 'rdma' command [1] will be enhanced to send these new
messages.

I appreciate any reviewed-by tags for the patches.  Thanks!

Note there is at least one outstanding issue:  the rdma-core requires
RXE links to be named "rxe*" or it fails to associate an rxe uverbs
driver with the rxe provider.  This, however, can be addressed
in a subsequent series.

[1] rdma tool support (work-in-progress):
https://github.com/larrystevenwise/iproute2/tree/wip/newlink

Changes since V4/V5:
- fixed device remove races in rxe
- fixed deadlock in NETDEV_UNREGISTER induced rxe device removal
- removed redundant string checks in nldev_newlink()
- added reviewed-by tag

Changes since V3:
- link_ops mutex replaced with rwsem
- save link_ops pointer in ib_device struct to be used when deleting
  a link
- only require the device index from userland for DELLINK operations
- pass struct ib_device pointer to drivers for dellink()

Changes since V2:
- removed unneeded enum value assignment
- removed gotos where there was no unwind logic
- protect get and use of link_ops with mutex

Changes since V1:
- rebased on for-next branch of linux-rdma repo
- removed 2 pr_debug()s
- validate string lengths in nldev_newlink()/nldev_dellink()
- don't allow '%' in ibdev names
- make all string parameters const char * in rdma_link_ops
- simplified the request_module logic in nldev_newlink()
- add leon's reviewed-by tag.

Changes since RFC:
- rebased on top of leon's and jason's device name work
- request module load if the link ops aren't found
- detect duplicate link ops adds
- const char * changes
- use the RDMA_NLDEV open enum values

Steve Wise (4):
  rdma_rxe: serialize device removal
  rdma_rxe: schedule rxe_net_remove()
  RDMA/Core: add RDMA_NLDEV_CMD_NEWLINK/DELLINK support
  rdma_rxe: use netlink messages to add/delete links

 drivers/infiniband/core/nldev.c       | 134 ++++++++++++++++++++++++++++++++++
 drivers/infiniband/sw/rxe/rxe.c       |  65 +++++++++++++++--
 drivers/infiniband/sw/rxe/rxe.h       |   4 +-
 drivers/infiniband/sw/rxe/rxe_net.c   |  57 +++++++++++++--
 drivers/infiniband/sw/rxe/rxe_net.h   |   4 +-
 drivers/infiniband/sw/rxe/rxe_sysfs.c |  10 +--
 drivers/infiniband/sw/rxe/rxe_verbs.c |   4 +-
 drivers/infiniband/sw/rxe/rxe_verbs.h |   3 +-
 include/rdma/ib_verbs.h               |   2 +
 include/rdma/rdma_netlink.h           |  13 ++++
 include/uapi/rdma/rdma_netlink.h      |  11 ++-
 11 files changed, 283 insertions(+), 24 deletions(-)

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