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 4CF4642ECF for ; Thu, 20 Jul 2023 17:24:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4895B40685; Thu, 20 Jul 2023 17:24:11 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id C8143400D6 for ; Thu, 20 Jul 2023 17:24:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1689866649; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QCVS6j1+OiyHY6gAkoksAGesbMjHy0uj2sR1Tge0PpA=; b=EMtsxe4Hcf27Ar7eOuyxgmfq5Ze0q20hm4SIZoQ0O72k9x8518XzvGe4eykxvOTQ6oZe5F qJ/aRkid6tvVEiXGofkIPVWd+0mdYtsBHrOuH2sWwFYopB3QvsUZh8VNT17AnY+x0f6wke ULZp7kIyghdfT4VEx60CfD9lw7HYqwU= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-442-JVBZtknLM6atpCJUP3HgWA-1; Thu, 20 Jul 2023 11:22:04 -0400 X-MC-Unique: JVBZtknLM6atpCJUP3HgWA-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 6165889103D; Thu, 20 Jul 2023 15:21:41 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.192.15]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3EDE5492C13; Thu, 20 Jul 2023 15:21:40 +0000 (UTC) From: Kevin Traynor To: Wenjun Wu Cc: Qi Zhang , dpdk stable Subject: patch 'net/ice: fix Rx data buffer size' has been queued to stable release 21.11.5 Date: Thu, 20 Jul 2023 16:18:17 +0100 Message-ID: <20230720151942.262154-66-ktraynor@redhat.com> In-Reply-To: <20230720151942.262154-1-ktraynor@redhat.com> References: <20230720151942.262154-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true 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 21.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 07/25/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/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/54b08280e728e709b654a31597aa2d119379dfd6 Thanks. Kevin --- >From 54b08280e728e709b654a31597aa2d119379dfd6 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 6e9e80c1df..20888f1980 100644 --- a/drivers/net/ice/ice_dcf_ethdev.c +++ b/drivers/net/ice/ice_dcf_ethdev.c @@ -66,5 +66,6 @@ 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(ICE_SUPPORT_CHAIN_NUM * rxq->rx_buf_len, dev->data->mtu + ICE_ETH_OVERHEAD); diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index ae2701f5e4..f0ca5557ce 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -284,5 +284,6 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) 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, diff --git a/drivers/net/ice/ice_rxtx.h b/drivers/net/ice/ice_rxtx.h index e86c8977e4..1cc93c9d3c 100644 --- a/drivers/net/ice/ice_rxtx.h +++ b/drivers/net/ice/ice_rxtx.h @@ -46,4 +46,7 @@ extern uint64_t ice_timestamp_dynflag; extern int ice_timestamp_dynfield_offset; +/* 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); -- 2.41.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-07-20 16:18:02.890519100 +0100 +++ 0066-net-ice-fix-Rx-data-buffer-size.patch 2023-07-20 16:17:54.857751308 +0100 @@ -1 +1 @@ -From 9a5c9dc475428c7d2c74383c0903541ab80144ea Mon Sep 17 00:00:00 2001 +From 54b08280e728e709b654a31597aa2d119379dfd6 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 6e9e80c1df..20888f1980 100644 @@ -31 +32 @@ -@@ -115,5 +115,6 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq) +@@ -66,5 +66,6 @@ ice_dcf_init_rxq(struct rte_eth_dev *dev, struct ice_rx_queue *rxq) @@ -40 +41 @@ -index 0ea0045836..560c1a4af7 100644 +index ae2701f5e4..f0ca5557ce 100644 @@ -43,2 +44 @@ -@@ -260,5 +260,6 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) - buf_size = (uint16_t)(rte_pktmbuf_data_room_size(rxq->mp) - +@@ -284,5 +284,6 @@ ice_program_hw_rx_queue(struct ice_rx_queue *rxq) @@ -45,0 +46 @@ + rxq->rx_hdr_len = 0; @@ -52 +53 @@ -index 94f6bcf3d1..89569029e1 100644 +index e86c8977e4..1cc93c9d3c 100644 @@ -55,2 +56,2 @@ -@@ -52,4 +52,7 @@ extern int ice_timestamp_dynfield_offset; - #define ICE_RX_HDR_BUF_SIZE (2048 - 64) +@@ -46,4 +46,7 @@ extern uint64_t ice_timestamp_dynflag; + extern int ice_timestamp_dynfield_offset; @@ -61,2 +62,2 @@ - #define ICE_HEADER_SPLIT_ENA BIT(0) - + typedef void (*ice_rx_release_mbufs_t)(struct ice_rx_queue *rxq); + typedef void (*ice_tx_release_mbufs_t)(struct ice_tx_queue *txq);