From patchwork Thu Jul 16 08:23:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Slava Ovsiienko X-Patchwork-Id: 74189 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A1B8AA0549; Thu, 16 Jul 2020 10:23:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E291E1BEA3; Thu, 16 Jul 2020 10:23:28 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id AAD8C1BEAA for ; Thu, 16 Jul 2020 10:23:26 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from viacheslavo@mellanox.com) with SMTP; 16 Jul 2020 11:23:22 +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 06G8NMmp028957; Thu, 16 Jul 2020 11:23:22 +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 06G8NMWl006728; Thu, 16 Jul 2020 08:23:22 GMT Received: (from viacheslavo@localhost) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id 06G8NL2D006727; Thu, 16 Jul 2020 08:23:21 GMT X-Authentication-Warning: pegasus12.mtr.labs.mlnx: viacheslavo set sender to viacheslavo@mellanox.com using -f From: Viacheslav Ovsiienko To: dev@dpdk.org Cc: matan@mellanox.com, rasland@mellanox.com, olivier.matz@6wind.com, thomas@monjalon.net, ferruh.yigit@intel.com Date: Thu, 16 Jul 2020 08:23:03 +0000 Message-Id: <1594887800-6563-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1591771085-24959-1-git-send-email-viacheslavo@mellanox.com> References: <1591771085-24959-1-git-send-email-viacheslavo@mellanox.com> Subject: [dpdk-dev] [PATCH v3 00/17] net/mlx5: introduce accurate packet Tx scheduling 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" The accurate packet Tx scheduling on timestamps was introduced [1]. This patchset provides the feature implementation on mlx5 PMD side. [1] http://patches.dpdk.org/patch/73742/ Signed-off-by: Viacheslav Ovsiienko Acked-by: Matan Azrad --- v3: - 32-bit systems rte_atomic128_cmp_exchange() fix - strncpy coverity issue (bug)fix - codestyle compilation issues - negative tx_pp is always enabled Viacheslav Ovsiienko (17): common/mlx5: update common part to support packet pacing net/mlx5: introduce send scheduling devargs net/mlx5: fix UAR lock sharing for multiport devices net/mlx5: introduce shared UAR resource net/mlx5: create clock queue for packet pacing net/mlx5: create rearm queue for packet pacing net/mlx5: create Tx queues with DevX net/mlx5: allocate packet pacing context net/mlx5: introduce clock queue service routine net/mlx5: prepare Tx queue structures to support timestamp net/mlx5: convert timestamp to completion index net/mlx5: prepare Tx datapath to support sheduling net/mlx5: add scheduling support to send routine template net/mlx5: add read device clock support net/mlx5: provide the send scheduling error statistics common/mlx5: add register access DevX routine net/mlx5: convert Rx timestamps in realtime format doc/guides/nics/mlx5.rst | 37 + drivers/common/mlx5/Makefile | 25 + drivers/common/mlx5/linux/meson.build | 10 + drivers/common/mlx5/linux/mlx5_glue.c | 31 +- drivers/common/mlx5/linux/mlx5_glue.h | 5 + drivers/common/mlx5/mlx5_devx_cmds.c | 79 +- drivers/common/mlx5/mlx5_devx_cmds.h | 13 + drivers/common/mlx5/mlx5_prm.h | 121 +- drivers/common/mlx5/rte_common_mlx5_version.map | 1 + drivers/net/mlx5/Makefile | 1 + drivers/net/mlx5/linux/mlx5_os.c | 97 +- drivers/net/mlx5/meson.build | 1 + drivers/net/mlx5/mlx5.c | 61 +- drivers/net/mlx5/mlx5.h | 90 +- drivers/net/mlx5/mlx5_defs.h | 11 + drivers/net/mlx5/mlx5_rxq.c | 26 +- drivers/net/mlx5/mlx5_rxtx.c | 373 ++++++- drivers/net/mlx5/mlx5_rxtx.h | 97 ++ drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 34 +- drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 54 +- drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 34 +- drivers/net/mlx5/mlx5_stats.c | 7 +- drivers/net/mlx5/mlx5_trigger.c | 26 +- drivers/net/mlx5/mlx5_txpp.c | 1335 +++++++++++++++++++++++ drivers/net/mlx5/mlx5_txq.c | 342 +++++- 25 files changed, 2802 insertions(+), 109 deletions(-) create mode 100644 drivers/net/mlx5/mlx5_txpp.c