mbox series

[0/5] Add irdma user space provider for Intel Ethernet RDMA

Message ID 20210514153135.1972-1-tatyana.e.nikolova@intel.com (mailing list archive)
Headers show
Series Add irdma user space provider for Intel Ethernet RDMA | expand

Message

Nikolova, Tatyana E May 14, 2021, 3:31 p.m. UTC
This patch series replaces the current i40iw library with
a unified Intel Ethernet RDMA library that supports a new network
device E810 (iWARP and RoCEv2 capable) and the existing X722 iWARP device.
The new library is fully backward compatible with the i40iw driver and
is designed to be used with multiple future HW generations.

This patch series can be viewed at
https://github.com/tatyana-en/rdma-core/commits/libirdma-051321

The corresponding irdma driver patch series is at 
https://lore.kernel.org/linux-rdma/20210514141214.2120-1-shiraz.saleem@intel.com/

v2-->v3
* Limit "Remove provider i40iw" changes to code removal only 
* Use the rdma-core provided definition for modify_qp cmd
* Convert all single implementation indirect .ops into direct function calls 
* Misc. library fixes in irdma
  
v1-->v2:
* Replace mfence with a compiler barrier
* Replace ibv_cmd_create_cq() with the new ibv_cmd_create_ext()
* Remove unnecessary #ifdef ICE_DEV_ID_xxx
* Remove fprintf debug prints
* Do not bump ABI ver. to 6 in irdma. Maintain irdma ABI ver. at 5 for legacy i40iw user-provider compatibility.
* Use utility macros like FIELD_PREP/FIELD_GET/GENMASK/etc from rdma-core util.h
* Remove irdma-abi.h file since it is provided by the driver
* Misc. library fixes in irdma

The library passes the azp sparse, CI checks and pyverbs for RoCEv2 and iWARP.

Tatyana Nikolova (5):
  rdma-core/i40iw: Remove provider i40iw
  rdma-core/irdma: Add irdma to Makefiles, distro files and
    kernel-headers
  rdma-core/irdma: Add user/kernel shared libraries
  rdma-core/irdma: Add library setup and utility definitions
  rdma-core/irdma: Implement device supported verb APIs

 CMakeLists.txt                            |    2 +-
 MAINTAINERS                               |    7 +-
 debian/control                            |    2 +-
 debian/copyright                          |    8 +-
 kernel-headers/CMakeLists.txt             |    4 +-
 kernel-headers/rdma/i40iw-abi.h           |  107 --
 kernel-headers/rdma/ib_user_ioctl_verbs.h |    2 +-
 libibverbs/verbs.h                        |    2 +-
 providers/i40iw/CMakeLists.txt            |    5 -
 providers/i40iw/i40e_devids.h             |   72 --
 providers/i40iw/i40iw-abi.h               |   55 -
 providers/i40iw/i40iw_d.h                 | 1746 --------------------------
 providers/i40iw/i40iw_osdep.h             |  108 --
 providers/i40iw/i40iw_register.h          | 1030 ---------------
 providers/i40iw/i40iw_status.h            |  101 --
 providers/i40iw/i40iw_uk.c                | 1266 -------------------
 providers/i40iw/i40iw_umain.c             |  226 ----
 providers/i40iw/i40iw_umain.h             |  181 ---
 providers/i40iw/i40iw_user.h              |  456 -------
 providers/i40iw/i40iw_uverbs.c            |  983 ---------------
 providers/irdma/CMakeLists.txt            |    8 +
 providers/irdma/abi.h                     |   33 +
 providers/irdma/defs.h                    |  334 +++++
 providers/irdma/i40e_devids.h             |   36 +
 providers/irdma/i40iw_hw.h                |   31 +
 providers/irdma/ice_devids.h              |   59 +
 providers/irdma/irdma.h                   |   53 +
 providers/irdma/osdep.h                   |   21 +
 providers/irdma/status.h                  |   72 ++
 providers/irdma/uk.c                      | 1686 +++++++++++++++++++++++++
 providers/irdma/umain.c                   |  233 ++++
 providers/irdma/umain.h                   |  204 +++
 providers/irdma/user.h                    |  439 +++++++
 providers/irdma/uverbs.c                  | 1924 +++++++++++++++++++++++++++++
 redhat/rdma-core.spec                     |    6 +-
 suse/rdma-core.spec                       |    4 +-
 util/util.h                               |    8 +-
 37 files changed, 5158 insertions(+), 6356 deletions(-)
 delete mode 100644 kernel-headers/rdma/i40iw-abi.h
 delete mode 100644 providers/i40iw/CMakeLists.txt
 delete mode 100644 providers/i40iw/i40e_devids.h
 delete mode 100644 providers/i40iw/i40iw-abi.h
 delete mode 100644 providers/i40iw/i40iw_d.h
 delete mode 100644 providers/i40iw/i40iw_osdep.h
 delete mode 100644 providers/i40iw/i40iw_register.h
 delete mode 100644 providers/i40iw/i40iw_status.h
 delete mode 100644 providers/i40iw/i40iw_uk.c
 delete mode 100644 providers/i40iw/i40iw_umain.c
 delete mode 100644 providers/i40iw/i40iw_umain.h
 delete mode 100644 providers/i40iw/i40iw_user.h
 delete mode 100644 providers/i40iw/i40iw_uverbs.c
 create mode 100644 providers/irdma/CMakeLists.txt
 create mode 100644 providers/irdma/abi.h
 create mode 100644 providers/irdma/defs.h
 create mode 100644 providers/irdma/i40e_devids.h
 create mode 100644 providers/irdma/i40iw_hw.h
 create mode 100644 providers/irdma/ice_devids.h
 create mode 100644 providers/irdma/irdma.h
 create mode 100644 providers/irdma/osdep.h
 create mode 100644 providers/irdma/status.h
 create mode 100644 providers/irdma/uk.c
 create mode 100644 providers/irdma/umain.c
 create mode 100644 providers/irdma/umain.h
 create mode 100644 providers/irdma/user.h
 create mode 100644 providers/irdma/uverbs.c