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 9928742CBC for ; Thu, 15 Jun 2023 03:35:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 939FB42D4B; Thu, 15 Jun 2023 03:35:46 +0200 (CEST) Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) by mails.dpdk.org (Postfix) with ESMTP id 068DE40DDA for ; Thu, 15 Jun 2023 03:35:45 +0200 (CEST) Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-30ae95c4e75so7276989f8f.2 for ; Wed, 14 Jun 2023 18:35:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686792944; x=1689384944; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fG28PLQdtMqJqv7NNvQb7Th0/9SnGkzci2XPOE0UfKM=; b=Lb14T6rKLOxFpAdEaOz9BK8RM7oQldPHzjtQ1M87AlVqP3lmsUFHyM0IanMAEkvKI3 drwgrTlY+FVlprmfZ/ugvAm3I2tKHLUA7WANeif8LF+T32vZlHM875KIMJ3/gdTFWpK6 yf/D3KM8VVCSjwXZcwP2lRLeSPeNwixdAG/X5PSIUriGuBUC5tWGUR8WPe1xl8N8krXD mWDjuV+C6URF1pxexZeV69kDbcaI6swkR4xdT1dwU77CxLJaIjhXUB1IK4iAa1eaBLgY Hrr4GP9Yu4jaFbR/qfimYET3bqND9QolMKbGBQbFInhfWUjgqqADDdEkbq2gPlA5ULxn pl3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686792944; x=1689384944; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fG28PLQdtMqJqv7NNvQb7Th0/9SnGkzci2XPOE0UfKM=; b=lMnbD1QZsVKJygYWf7L8Smv3GJz6Hpuo+zlJmmdjTqdtOrEeb0sZ/7Mz1Z/csXnsFa muZG5PkYEwvQrjiGGflTVDxUiwg/VUphua3A+FYXR/gmTeOI8/4ov+GM3zYDULzqdjlV p+As2fBIaMwF4Btk8ixrXu7AoNd+JCB9zvMm+TaFAdZS+UFpZG/tl0QPAZviR/b2xTW5 7HiPrLtIQyY4wLp9ryK4+f9SdtkLHOnGCpQ6Q+EsMZFpX4GUEbUBYj+5iOGPosoE6xpx clNcGjK35tu5DCj0ykoHciGZT/RkYeU/pwwSd4GS9tY0P0gyhMhMqmR/OuvyUKxMEYCm z7TQ== X-Gm-Message-State: AC+VfDzWZgBJ1zHXzYeG3IM6gYM7eolIkHoBoef/mP73LdNQRAPMrBH7 FJsRRGOCym9FeQ8yTdrKCcqlJxvi8NPqbHpv X-Google-Smtp-Source: ACHHUZ7z8R3++anw+CLZAUS4Eo89pkV/k/rTYCpvn3aedruBTfA16SS46wU6ihVk2zuJvjF8K4rPhw== X-Received: by 2002:adf:e546:0:b0:306:41d3:fcb9 with SMTP id z6-20020adfe546000000b0030641d3fcb9mr11189211wrm.27.1686792944688; Wed, 14 Jun 2023 18:35:44 -0700 (PDT) Received: from localhost ([137.220.119.58]) by smtp.gmail.com with ESMTPSA id e10-20020a056000194a00b0030497b3224bsm19597416wry.64.2023.06.14.18.35.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Jun 2023 18:35:44 -0700 (PDT) From: luca.boccassi@gmail.com To: Wenjun Wu Cc: Qi Zhang , dpdk stable Subject: patch 'net/ice: fix Rx data buffer size' has been queued to stable release 20.11.9 Date: Thu, 15 Jun 2023 02:32:47 +0100 Message-Id: <20230615013258.1439718-52-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230615013258.1439718-1-luca.boccassi@gmail.com> References: <20230615013258.1439718-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.9 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/17/23. 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/4b0fddb60cf9084a7b8592a25230797cbb01dd32 Thanks. Luca Boccassi --- >From 4b0fddb60cf9084a7b8592a25230797cbb01dd32 Mon Sep 17 00:00:00 2001 From: Wenjun Wu Date: Fri, 14 Apr 2023 13:47:41 +0800 Subject: [PATCH] net/ice: fix Rx data buffer size [ upstream commit 9a5c9dc475428c7d2c74383c0903541ab80144ea ] This patch does two fixes. 1. According to hardware spec, the data buffer size should not be greater than 16K - 128. 2. Replace RTE_ALIGN with RTE_ALIGN_FLOOR according to [1]. [1] Commit c9c45beb1b97 ("net/iavf: fix Rx queue buffer size alignment") Fixes: 50370662b727 ("net/ice: support device and queue ops") Fixes: 1b009275e2c8 ("net/ice: add Rx queue init in DCF") Signed-off-by: Wenjun Wu Acked-by: Qi Zhang --- drivers/net/ice/ice_dcf_ethdev.c | 3 ++- drivers/net/ice/ice_rxtx.c | 3 ++- drivers/net/ice/ice_rxtx.h | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c index 429057a862..eb8095a61f 100644 --- a/drivers/net/ice/ice_dcf_ethdev.c +++ b/drivers/net/ice/ice_dcf_ethdev.c @@ -52,7 +52,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq) buf_size = rte_pktmbuf_data_room_size(rxq->mp) - RTE_PKTMBUF_HEADROOM; rxq->rx_hdr_len = 0; - rxq->rx_buf_len = RTE_ALIGN(buf_size, (1 << ICE_RLAN_CTX_DBUF_S)); + rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size, (1 << ICE_RLAN_CTX_DBUF_S)); + rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len, ICE_RX_MAX_DATA_BUF_SIZE); max_pkt_len = RTE_MIN((uint32_t) ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, dev->data->dev_conf.rxmode.max_rx_pkt_len); diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index 2716c56f3a..699bf7bb64 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -248,7 +248,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mp) - RTE_PKTMBUF_HEADROOM); rxq->rx_hdr_len = 0; - rxq->rx_buf_len = RTE_ALIGN(buf_size, (1 << ICE_RLAN_CTX_DBUF_S)); + rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size, (1 << ICE_RLAN_CTX_DBUF_S)); + rxq->rx_buf_len = RTE_MIN(rxq->rx_buf_len, ICE_RX_MAX_DATA_BUF_SIZE); rxq->max_pkt_len = RTE_MIN((uint32_t) ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, dev_data->dev_conf.rxmode.max_rx_pkt_len); diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h index 1ba264ddbc..02da387897 100644 --- a/drivers/net/ice/ice_rxtx.h +++ b/drivers/net/ice/ice_rxtx.h @@ -42,6 +42,9 @@ #define ICE_TX_MIN_PKT_LEN 17 +/* Max data buffer size must be 16K - 128 bytes */ +#define ICE_RX_MAX_DATA_BUF_SIZE (16 * 1024 - 128) + typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq); typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq); typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq, -- 2.39.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-06-15 01:56:37.337464438 +0100 +++ 0052-net-ice-fix-Rx-data-buffer-size.patch 2023-06-15 01:56:34.699544188 +0100 @@ -1 +1 @@ -From 9a5c9dc475428c7d2c74383c0903541ab80144ea Mon Sep 17 00:00:00 2001 +From 4b0fddb60cf9084a7b8592a25230797cbb01dd32 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 9a5c9dc475428c7d2c74383c0903541ab80144ea ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -28 +29 @@ -index 13ff24552d..76b28bface 100644 +index 429057a862..eb8095a61f 100644 @@ -31 +32 @@ -@@ -114,7 +114,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq) +@@ -52,7 +52,8 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq) @@ -38,3 +39,3 @@ - max_pkt_len = RTE_MIN(ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, - dev->data->mtu + ICE_ETH_OVERHEAD); - + max_pkt_len = RTE_MIN((uint32_t) + ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, + dev->data->dev_conf.rxmode.max_rx_pkt_len); @@ -42 +43 @@ -index 0ea0045836..560c1a4af7 100644 +index 2716c56f3a..699bf7bb64 100644 @@ -45,2 +46 @@ -@@ -259,7 +259,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) - /* Set buffer size as the head split is disabled. */ +@@ -248,7 +248,8 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) @@ -48,0 +49 @@ + rxq->rx_hdr_len = 0; @@ -52,3 +53,3 @@ - rxq->max_pkt_len = - RTE_MIN((uint32_t)ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, - frame_size); + rxq->max_pkt_len = RTE_MIN((uint32_t) + ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, + dev_data->dev_conf.rxmode.max_rx_pkt_len); @@ -56 +57 @@ -index 94f6bcf3d1..89569029e1 100644 +index 1ba264ddbc..02da387897 100644 @@ -59,3 +60,3 @@ -@@ -51,6 +51,9 @@ extern int ice_timestamp_dynfield_offset; - /* Max header size can be 2K - 64 bytes */ - #define ICE_RX_HDR_BUF_SIZE (2048 - 64) +@@ -42,6 +42,9 @@ + + #define ICE_TX_MIN_PKT_LEN 17 @@ -66,2 +66,0 @@ - #define ICE_HEADER_SPLIT_ENA BIT(0) - @@ -68,0 +68,2 @@ + typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq); + typedef void (*ice_rxd_to_pkt_fields_t)(struct ice_rx_queue *rxq,