Message ID | 1563719100-368-1-git-send-email-viacheslavo@mellanox.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 38ECB2BBD; Sun, 21 Jul 2019 16:25:31 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 1E52D2BAF for <dev@dpdk.org>; Sun, 21 Jul 2019 16:25:30 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from viacheslavo@mellanox.com) with ESMTPS (AES256-SHA encrypted); 21 Jul 2019 17:25:27 +0300 Received: from pegasus12.mtr.labs.mlnx (pegasus12.mtr.labs.mlnx [10.210.17.40]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id x6LEPR7c006794; Sun, 21 Jul 2019 17:25:27 +0300 Received: from pegasus12.mtr.labs.mlnx (localhost [127.0.0.1]) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id x6LEPRoA000734; Sun, 21 Jul 2019 14:25:27 GMT Received: (from viacheslavo@localhost) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id x6LEPR7R000733; Sun, 21 Jul 2019 14:25:27 GMT X-Authentication-Warning: pegasus12.mtr.labs.mlnx: viacheslavo set sender to viacheslavo@mellanox.com using -f From: Viacheslav Ovsiienko <viacheslavo@mellanox.com> To: dev@dpdk.org Cc: yskoh@mellanox.com Date: Sun, 21 Jul 2019 14:24:52 +0000 Message-Id: <1563719100-368-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1563346400-1762-1-git-send-email-viacheslavo@mellanox.com> References: <1563346400-1762-1-git-send-email-viacheslavo@mellanox.com> Subject: [dpdk-dev] [PATCH v4 0/8] net/mlx5: consolidate Tx datapath X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
net/mlx5: consolidate Tx datapath
|
|
Message
Slava Ovsiienko
July 21, 2019, 2:24 p.m. UTC
This patchset introduces the new implementation of tx_burst
routine of mlx5 PMD. The existing implementation is based on the
several branches of tx_burst routines optimizied for most
common sets of Tx hardware offload, supported by Mellanox NICs.
It was not very easy to update, support and develop such kind
of code - multiple branches impose multiple points to process.
Also, many of frequently requested offload combinations are not
supported yet in the most efficient way. That leads to selecting
of not completely matching tx_burst routine and harms the performance.
The new Tx datapath:
- introduces the unified template for tx_burst routine to generate
on compile time the most efficient instances, tuned for specified
sets of hardware offloads
- the best matching instance is chosen in run-time at sending queue
configuration
- almost all possible sets of Tx are supported
- the best possible method to send each packet is chosen on runtime
- introduces new devargs for more accurate tuning of data inlining
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
v4:
- inline first mbufs for multi-segment packets
- revert deprecated devargs support to not break device probing
- HW VLAN insertion from WQE bug
- rebase
v3:
- http://patches.dpdk.org/cover/56568/
- add reporting max number of segments in packet
- minor fixes with inline data length setup
- rebase on the current repo top
v2:
- http://patches.dpdk.org/cover/56451/
- minor performance issues resolved
- typos in comments and docs
v1:
- http://patches.dpdk.org/patch/56091/
Viacheslav Ovsiienko (8):
*** BLURB HERE ***
Viacheslav Ovsiienko (8):
net/mlx5: remove Tx datapath implementation
net/mlx5: add Tx datapath related devargs
net/mlx5: update Tx datapath definitions
net/mlx5: extend NIC attributes query via DevX
net/mlx5: add Tx datapath configuration and setup
net/mlx5: introduce Tx burst routine template
net/mlx5: implement Tx burst template
net/mlx5: report supported max number of mbuf segments
doc/guides/nics/mlx5.rst | 173 +-
doc/guides/rel_notes/release_19_08.rst | 2 +
drivers/net/mlx5/mlx5.c | 187 +-
drivers/net/mlx5/mlx5.h | 14 +-
drivers/net/mlx5/mlx5_defs.h | 36 +-
drivers/net/mlx5/mlx5_devx_cmds.c | 102 +-
drivers/net/mlx5/mlx5_ethdev.c | 95 +-
drivers/net/mlx5/mlx5_prm.h | 357 ++-
drivers/net/mlx5/mlx5_rxtx.c | 5338 ++++++++++++++++++++++----------
drivers/net/mlx5/mlx5_rxtx.h | 334 +-
drivers/net/mlx5/mlx5_rxtx_vec.c | 175 --
drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 289 --
drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 284 --
drivers/net/mlx5/mlx5_txq.c | 289 +-
14 files changed, 4638 insertions(+), 3037 deletions(-)
Comments
Hi, > -----Original Message----- > From: dev <dev-bounces@dpdk.org> On Behalf Of Viacheslav Ovsiienko > Sent: Sunday, July 21, 2019 5:25 PM > To: dev@dpdk.org > Cc: Yongseok Koh <yskoh@mellanox.com> > Subject: [dpdk-dev] [PATCH v4 0/8] net/mlx5: consolidate Tx datapath > > This patchset introduces the new implementation of tx_burst routine of mlx5 > PMD. The existing implementation is based on the several branches of > tx_burst routines optimizied for most common sets of Tx hardware offload, > supported by Mellanox NICs. > > It was not very easy to update, support and develop such kind of code - > multiple branches impose multiple points to process. > Also, many of frequently requested offload combinations are not supported > yet in the most efficient way. That leads to selecting of not completely > matching tx_burst routine and harms the performance. > > The new Tx datapath: > - introduces the unified template for tx_burst routine to generate > on compile time the most efficient instances, tuned for specified > sets of hardware offloads > - the best matching instance is chosen in run-time at sending queue > configuration > - almost all possible sets of Tx are supported > - the best possible method to send each packet is chosen on runtime > - introduces new devargs for more accurate tuning of data inlining > > Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> > Series applied to next-net-mlx Kindest regards Raslan Darawsheh