From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8937CC76186 for ; Wed, 17 Jul 2019 06:53:29 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 235C020818 for ; Wed, 17 Jul 2019 06:53:28 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 235C020818 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EF4364C90; Wed, 17 Jul 2019 08:53:27 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 3CB212BF4 for ; Wed, 17 Jul 2019 08:53:26 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE2 (envelope-from viacheslavo@mellanox.com) with ESMTPS (AES256-SHA encrypted); 17 Jul 2019 09:53:25 +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 x6H6rPqo013283; Wed, 17 Jul 2019 09:53:25 +0300 From: Viacheslav Ovsiienko To: dev@dpdk.org Cc: yskoh@mellanox.com Date: Wed, 17 Jul 2019 06:53:12 +0000 Message-Id: <1563346400-1762-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1563199161-29745-1-git-send-email-viacheslavo@mellanox.com> References: <1563199161-29745-1-git-send-email-viacheslavo@mellanox.com> Subject: [dpdk-dev] [PATCH v3 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- v3: - 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): net/mlx5: remove Tx datapath implementation net/mlx5: add Tx datapath related devargs net/mlx5: update Tx datapath definitions net/mlx5: add Tx datapath configuration and setup net/mlx5: introduce Tx burst routine template net/mlx5: implement Tx burst template net/mlx5: add minimal required Tx data inline net/mlx5: report supported max number of mbuf segments doc/guides/nics/mlx5.rst | 168 +- drivers/net/mlx5/mlx5.c | 155 +- drivers/net/mlx5/mlx5.h | 13 +- drivers/net/mlx5/mlx5_defs.h | 36 +- drivers/net/mlx5/mlx5_devx_cmds.c | 100 +- drivers/net/mlx5/mlx5_ethdev.c | 95 +- drivers/net/mlx5/mlx5_prm.h | 356 ++- drivers/net/mlx5/mlx5_rxtx.c | 5280 ++++++++++++++++++++++----------- drivers/net/mlx5/mlx5_rxtx.h | 333 +-- 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 | 242 +- 13 files changed, 4451 insertions(+), 3075 deletions(-) -- 1.8.3.1