[dpdk-dev] [PATCH v1 00/48] net/mlx4: trim and refactor entire PMD

Adrien Mazarguil adrien.mazarguil at 6wind.com
Tue Aug 1 18:53:47 CEST 2017


The main purpose of this large series is to relieve the mlx4 PMD from its
dependency on Mellanox OFED to instead rely on the standard rdma-core
package provided by Linux distributions.

While compatibility with Mellanox OFED is preserved, all nonstandard
functionality has to be stripped from the PMD in order to re-implement it
through an approach compatible with rdma-core.

Due to the amount of changes necessary to achieve this goal, this rework
starts off by removing extraneous code to simplify the PMD as much as
possible before either replacing or dismantling functionality that relies on
nonstandard Verbs.

What remains after applying this series is single-segment Tx/Rx support,
without offloads nor RSS, on the default MAC address (which cannot be
configured). Support for multiple queues and the flow API (minus the RSS
action) are also preserved.

Missing functionality that needs substantial work will be restored later by
subsequent series.

Also because the mlx4 PMD is mostly contained in a single very large source
file of 6400+ lines (mlx4.c) which has become extremely difficult to
maintain, this rework is used as an opportunity to finally group functions
into separate files, as in mlx5.

This rework targets DPDK 17.11.

Adrien Mazarguil (48):
  net/mlx4: add consistency to copyright notices
  net/mlx4: remove limitation on number of instances
  net/mlx4: check max number of ports dynamically
  net/mlx4: remove useless compilation checks
  net/mlx4: remove secondary process support
  net/mlx4: remove useless code
  net/mlx4: remove soft counters compilation option
  net/mlx4: remove scatter mode compilation option
  net/mlx4: remove Tx inline compilation option
  net/mlx4: remove allmulti and promisc support
  net/mlx4: remove VLAN filter support
  net/mlx4: remove MAC address configuration support
  net/mlx4: drop MAC flows affecting all Rx queues
  net/mlx4: revert flow API RSS support
  net/mlx4: revert RSS parent queue refactoring
  net/mlx4: drop RSS support
  net/mlx4: drop checksum offloads support
  net/mlx4: drop packet type recognition support
  net/mlx4: drop scatter/gather support
  net/mlx4: drop inline receive support
  net/mlx4: use standard QP attributes
  net/mlx4: revert resource domain support
  net/mlx4: revert multicast echo prevention
  net/mlx4: revert fast Verbs interface for Tx
  net/mlx4: revert fast Verbs interface for Rx
  net/mlx4: simplify link update function
  net/mlx4: standardize on negative errno values
  net/mlx4: clean up coding style inconsistencies
  net/mlx4: remove control path locks
  net/mlx4: remove unnecessary wrapper functions
  net/mlx4: remove mbuf macro definitions
  net/mlx4: use standard macro to get array size
  net/mlx4: separate debugging macros
  net/mlx4: use a single interrupt handle
  net/mlx4: rename alarm field
  net/mlx4: refactor interrupt FD settings
  net/mlx4: clean up interrupt functions prototypes
  net/mlx4: compact interrupt functions
  net/mlx4: separate interrupt handling
  net/mlx4: separate Rx/Tx definitions
  net/mlx4: separate Rx/Tx functions
  net/mlx4: separate device control functions
  net/mlx4: separate Tx configuration functions
  net/mlx4: separate Rx configuration functions
  net/mlx4: group flow API handlers in common file
  net/mlx4: rename private functions in flow API
  net/mlx4: separate memory management functions
  net/mlx4: clean up includes and comments

 config/common_base                |    3 -
 doc/guides/nics/features/mlx4.ini |   13 -
 doc/guides/nics/mlx4.rst          |   37 +-
 drivers/net/mlx4/Makefile         |   41 +-
 drivers/net/mlx4/mlx4.c           | 6370 ++------------------------------
 drivers/net/mlx4/mlx4.h           |  322 +-
 drivers/net/mlx4/mlx4_ethdev.c    |  792 ++++
 drivers/net/mlx4/mlx4_flow.c      |  457 +--
 drivers/net/mlx4/mlx4_flow.h      |   51 +-
 drivers/net/mlx4/mlx4_intr.c      |  377 ++
 drivers/net/mlx4/mlx4_mr.c        |  183 +
 drivers/net/mlx4/mlx4_rxq.c       |  632 ++++
 drivers/net/mlx4/mlx4_rxtx.c      |  533 +++
 drivers/net/mlx4/mlx4_rxtx.h      |  164 +
 drivers/net/mlx4/mlx4_txq.c       |  472 +++
 drivers/net/mlx4/mlx4_utils.c     |   66 +
 drivers/net/mlx4/mlx4_utils.h     |  105 +
 17 files changed, 3824 insertions(+), 6794 deletions(-)
 create mode 100644 drivers/net/mlx4/mlx4_ethdev.c
 create mode 100644 drivers/net/mlx4/mlx4_intr.c
 create mode 100644 drivers/net/mlx4/mlx4_mr.c
 create mode 100644 drivers/net/mlx4/mlx4_rxq.c
 create mode 100644 drivers/net/mlx4/mlx4_rxtx.c
 create mode 100644 drivers/net/mlx4/mlx4_rxtx.h
 create mode 100644 drivers/net/mlx4/mlx4_txq.c
 create mode 100644 drivers/net/mlx4/mlx4_utils.c
 create mode 100644 drivers/net/mlx4/mlx4_utils.h

-- 
2.1.4



More information about the dev mailing list