From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A59EEA0032 for ; Fri, 18 Feb 2022 13:40:44 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A047C40141; Fri, 18 Feb 2022 13:40:44 +0100 (CET) Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by mails.dpdk.org (Postfix) with ESMTP id D57F840141 for ; Fri, 18 Feb 2022 13:40:42 +0100 (CET) Received: by mail-wr1-f49.google.com with SMTP id f3so14228620wrh.7 for ; Fri, 18 Feb 2022 04:40:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4NG1pOSfuRf8HSWSQ9C7seK+26lxkj+K1YBJ6MAgHFs=; b=C0by5g04Rbg6G78KwjAP95ce/c//imFAMWEpldnBWVbFqsc/VIqPbyzpnef+DHQOLU Naqky9CqDVaelk9QklnwceD7yzzguh5o7JLft9T1LDYsbHLmiIUJIl/Yfg7QsMaxPqwF MrzzPHxcQi+LKly3LnWPYas2OEopbJd7bBaxHrpjazRPxiqizFCWwSUuaCfXrL72XE8o xup/rOQRpEpqdFI31Ip8IHd/n80NOw0zm3cWNw5LA1YCeLT8efjXjhvqQdcV6TTyc81j jLCvrBPTfLDROlrZuWeJ+ITwA3IvOAnRwvqE63VESfqPR6IANYd5TiOlkJqOw70Aj+EJ BmNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4NG1pOSfuRf8HSWSQ9C7seK+26lxkj+K1YBJ6MAgHFs=; b=hHzFcGSu+qJ28vcLNPabkwivh4IRBbPs6zr3IAbMM96qzl3Z7bVMmdQCIygowjdIVt lbrZp8KWitqszD0q77Fa28o6s8vZkgjEzfsJ+wK0P85kogIJCiMU7kAYaHMNry7KVyhr vPgciKepzTGMLjzE79hB9hSW8DHomr/pwo0Fhsl5wEEtp8B/roFKpT7uER1G/xqQ5jV7 gJSSEUeG5XYwH3tRxRFtAbm7NHyjA90Ff04DygXqeXoUL3tvU9qEWPcaGaz9bSGjV0x/ lXIL8x0uPSsBhqdohStLtigShh36kG7b02Oj76fdkpSeBdyOzv+W0Uh53SvxApHz1PDm p5uQ== X-Gm-Message-State: AOAM530E53L6ZafpErxtsFIq8R+0Ac3/MeQWvCEEF+Y6dlute+yFfq2p aojMooo+BJHxp917i+M0hBPYQCrZtLWFcrs5 X-Google-Smtp-Source: ABdhPJzkRi55cxapjSmWELI1jGqygAu9MxZSK6gT51JL3luJElZ15ybeiW6WCuBLXQ6+/j0oqiRMOg== X-Received: by 2002:a5d:52cb:0:b0:1e4:b8b5:6ce1 with SMTP id r11-20020a5d52cb000000b001e4b8b56ce1mr5901335wrv.268.1645188042479; Fri, 18 Feb 2022 04:40:42 -0800 (PST) Received: from localhost ([2a01:4b00:f41a:3600:360b:9754:2e3a:c344]) by smtp.gmail.com with ESMTPSA id o20sm4907333wmq.21.2022.02.18.04.40.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Feb 2022 04:40:42 -0800 (PST) From: luca.boccassi@gmail.com To: Dmitry Kozlyuk Cc: Matan Azrad , dpdk stable Subject: patch 'net/mlx5: relax headroom assertion' has been queued to stable release 20.11.5 Date: Fri, 18 Feb 2022 12:37:50 +0000 Message-Id: <20220218123931.1749595-21-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220218123931.1749595-1-luca.boccassi@gmail.com> References: <20220218123931.1749595-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 20.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/20/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/66aa6f946717b3391a7aafe04a9909f4f248a465 Thanks. Luca Boccassi --- >From 66aa6f946717b3391a7aafe04a9909f4f248a465 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlyuk Date: Tue, 28 Dec 2021 11:20:43 +0200 Subject: [PATCH] net/mlx5: relax headroom assertion [ upstream commit 637582afcc886fc53c1dc7a3686cc771abad2cfd ] A debug assertion in Single-Packet Receive Queue (SPRQ) mode required all Rx mbufs to have a 128 byte headroom, based on the assumption that rte_pktmbuf_init() sets it. However, rte_pktmbuf_init() may set a smaller headroom if the dataroom is insufficient, e.g. this is a natural case for split buffer segments. The headroom can also be larger. Only check the headroom size when vectored Rx routines are used because they rely on it. Relax the assertion to require sufficient headroom size, not an exact one. Fixes: a0a45e8af723 ("net/mlx5: configure Rx queue for buffer split") Signed-off-by: Dmitry Kozlyuk Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_rxq.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index e4dfb82822..d7e5d194e3 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -207,6 +207,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) unsigned int elts_n = mlx5_rxq_mprq_enabled(&rxq_ctrl->rxq) ? (1 << rxq_ctrl->rxq.elts_n) * (1 << rxq_ctrl->rxq.strd_num_n) : (1 << rxq_ctrl->rxq.elts_n); + bool has_vec_support = mlx5_rxq_check_vec_support(&rxq_ctrl->rxq) > 0; unsigned int i; int err; @@ -222,8 +223,9 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) rte_errno = ENOMEM; goto error; } - /* Headroom is reserved by rte_pktmbuf_alloc(). */ - MLX5_ASSERT(DATA_OFF(buf) == RTE_PKTMBUF_HEADROOM); + /* Only vectored Rx routines rely on headroom size. */ + MLX5_ASSERT(!has_vec_support || + DATA_OFF(buf) >= RTE_PKTMBUF_HEADROOM); /* Buffer is supposed to be empty. */ MLX5_ASSERT(rte_pktmbuf_data_len(buf) == 0); MLX5_ASSERT(rte_pktmbuf_pkt_len(buf) == 0); @@ -236,7 +238,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) (*rxq_ctrl->rxq.elts)[i] = buf; } /* If Rx vector is activated. */ - if (mlx5_rxq_check_vec_support(&rxq_ctrl->rxq) > 0) { + if (has_vec_support) { struct mlx5_rxq_data *rxq = &rxq_ctrl->rxq; struct rte_mbuf *mbuf_init = &rxq->fake_mbuf; struct rte_pktmbuf_pool_private *priv = -- 2.30.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-02-18 12:37:38.972455641 +0000 +++ 0021-net-mlx5-relax-headroom-assertion.patch 2022-02-18 12:37:37.558788972 +0000 @@ -1 +1 @@ -From 637582afcc886fc53c1dc7a3686cc771abad2cfd Mon Sep 17 00:00:00 2001 +From 66aa6f946717b3391a7aafe04a9909f4f248a465 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 637582afcc886fc53c1dc7a3686cc771abad2cfd ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -26 +27 @@ -index eda609dd78..ee07c610b9 100644 +index e4dfb82822..d7e5d194e3 100644 @@ -29,4 +30,4 @@ -@@ -140,6 +140,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) - RTE_BIT32(rxq_ctrl->rxq.elts_n) * - RTE_BIT32(rxq_ctrl->rxq.log_strd_num) : - RTE_BIT32(rxq_ctrl->rxq.elts_n); +@@ -207,6 +207,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) + unsigned int elts_n = mlx5_rxq_mprq_enabled(&rxq_ctrl->rxq) ? + (1 << rxq_ctrl->rxq.elts_n) * (1 << rxq_ctrl->rxq.strd_num_n) : + (1 << rxq_ctrl->rxq.elts_n); @@ -37 +38 @@ -@@ -161,8 +162,9 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) +@@ -222,8 +223,9 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) @@ -49 +50 @@ -@@ -175,7 +177,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) +@@ -236,7 +238,7 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl)