From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 914A6A034E; Thu, 7 Nov 2019 14:18:29 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2B6E11EA3A; Thu, 7 Nov 2019 14:18:29 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id 17CAC1EA1A for ; Thu, 7 Nov 2019 14:18:26 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from viacheslavo@mellanox.com) with ESMTPS (AES256-SHA encrypted); 7 Nov 2019 15:18:25 +0200 Received: from pegasus11.mtr.labs.mlnx (pegasus11.mtr.labs.mlnx [10.210.16.104]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id xA7DIPKD019196; Thu, 7 Nov 2019 15:18:25 +0200 Received: from pegasus11.mtr.labs.mlnx (localhost [127.0.0.1]) by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id xA7DIP9w006684; Thu, 7 Nov 2019 13:18:25 GMT Received: (from viacheslavo@localhost) by pegasus11.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id xA7DIPHP006683; Thu, 7 Nov 2019 13:18:25 GMT X-Authentication-Warning: pegasus11.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, orika@mellanox.com Date: Thu, 7 Nov 2019 13:18:24 +0000 Message-Id: <1573132704-6637-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [PATCH] net/mlx5: fix asserts for multi-segment Tx offload misconfig 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" To support multi-segment packet sending the Tx datapath DEV_TX_OFFLOAD_MULTI_SEGS offload must be configured. In debug configuration the asserts arise if the multi-segment packet is being sent and no DEV_TX_OFFLOAD_MULTI_SEGS is set. It was found that in some execution paths asserts were missed, this patch adds ones. Fixes: 18a1c20044c0 ("net/mlx5: implement Tx burst template") Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_rxtx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index 887e283..ecebd72 100644 --- a/drivers/net/mlx5/mlx5_rxtx.c +++ b/drivers/net/mlx5/mlx5_rxtx.c @@ -3870,6 +3870,7 @@ enum mlx5_txcmp_code { unsigned int slen = 0; next_empw: + assert(NB_SEGS(loc->mbuf) == 1); part = RTE_MIN(pkts_n, MLX5_EMPW_MAX_PACKETS); if (unlikely(loc->elts_free < part)) { /* We have no enough elts to save all mbufs. */ @@ -3929,6 +3930,7 @@ enum mlx5_txcmp_code { return MLX5_TXCMP_CODE_EXIT; return MLX5_TXCMP_CODE_MULTI; } + assert(NB_SEGS(loc->mbuf) == 1); if (ret == MLX5_TXCMP_CODE_TSO) { part -= loop; mlx5_tx_sdone_empw(txq, loc, part, slen, olx); @@ -4028,6 +4030,7 @@ enum mlx5_txcmp_code { unsigned int room, part, nlim; unsigned int slen = 0; + assert(NB_SEGS(loc->mbuf) == 1); /* * Limits the amount of packets in one WQE * to improve CQE latency generation. @@ -4168,6 +4171,7 @@ enum mlx5_txcmp_code { return MLX5_TXCMP_CODE_EXIT; return MLX5_TXCMP_CODE_MULTI; } + assert(NB_SEGS(loc->mbuf) == 1); if (ret == MLX5_TXCMP_CODE_TSO) { part -= room; mlx5_tx_idone_empw(txq, loc, part, slen, olx); -- 1.8.3.1