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

Ferruh Yigit ferruh.yigit at intel.com
Tue Sep 5 11:59:50 CEST 2017


On 9/1/2017 9:06 AM, Adrien Mazarguil wrote:
> 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.
> 
> Changes since v1:
> 
> - Rebased series on top of the latest upstream fixes.
> 
> - Cleaned up remaining typos and coding style issues.
> 
> - "net/mlx4: check max number of ports dynamically":
>   Removed extra loop and added error message on maximum number of ports
>   according to Allain's suggestion.
> 
> - "net/mlx4: drop scatter/gather support":
>   Additionally removed unnecessary mbuf pool from rxq_alloc_elts().
> 
> - "net/mlx4: simplify Rx buffer handling":
>   New patch removing unnecessary code from the simplified Rx path.
> 
> - "net/mlx4: remove isolated mode constraint":
>   New patch removing needless constraint for isolated mode, which can now
>   be toggled anytime.
> 
> - "net/mlx4: rely on ethdev for Tx/Rx queue arrays":
>   New patch refactoring duplicated information from ethdev.
> 
> Adrien Mazarguil (51):
>   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 Rx buffer handling
>   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
>   net/mlx4: remove isolated mode constraint
>   net/mlx4: rely on ethdev for Tx/Rx queue arrays

Series applied to dpdk-next-net/master, thanks.


More information about the dev mailing list