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 CB35A46B72 for ; Mon, 14 Jul 2025 17:12:47 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C5DB44021F; Mon, 14 Jul 2025 17:12:47 +0200 (CEST) Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by mails.dpdk.org (Postfix) with ESMTP id E24904060C for ; Mon, 14 Jul 2025 17:12:45 +0200 (CEST) Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3a6d77b43c9so3959880f8f.3 for ; Mon, 14 Jul 2025 08:12:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1752505965; x=1753110765; darn=dpdk.org; 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=6cJ1dZVbBStkDxgnnQTaFJBa9yj9SntCutaTvh5N5C8=; b=RzfpWohBDdv68gKKy/kGm0psl5RXaDHR745gDuJgR3Rvrqip2uMshnUbS8Wk5VRmOd aDBUG/7oT42y5O80GuAZwrChZ6luryhivIxihQy3U5bCFczrinnTse5MI0PTkZVFDMBY 4OklHFEqc8kslVGcwbwkXauXz8UDerLwAq325dAWGdEGpLoDZ+35Y7GfH14KOTol2oPR V2Q/LmXcskYROVUFoKQeRW1YHIyiasl/taa45X2+TM+Em5vPkmdY0CpeshL4/Shbj0kN MKSGbfI4SjCY4zWpxBa58xdbfJHqfnKSJM0lEenvEV+YFWOuZLuizPrVB+LGOCmeAdqA Ib1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752505965; x=1753110765; 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=6cJ1dZVbBStkDxgnnQTaFJBa9yj9SntCutaTvh5N5C8=; b=EMjuxvxwJvYgFxzDZteQ+E4NWd9JZfr5FaDLHMbJb8mv4G7zJjTX2C0t0rWKtnwqqf SaS31+jeL5bSPTcfaj9CIF/ms/75vzO0EaePmaoD7AnxVmjEXzPFd9bpK7+rCqDnIByz FIjzy7pi4pVQpJ68jyqCMrIhA5I1kXLuI8H+NJ5wsKlRfTjyN7LAMFGbnVys8UDeVwj9 tgO0xQj0EN/m2vC2C1KPmexkGiY419NFHLs2grAVKuegYMuoJbWWcGzD7J4HUtNNj5KQ R/SDGM5FNpD9RM86qj2TeIphSxPaSpG4Rykgmtn5GHVim1RMn92syl/wg8xX4252uYd6 DHKQ== X-Forwarded-Encrypted: i=1; AJvYcCVm64ow93K9OLwqihp3HmANI6dWGJW8VF1rFnV/kDLSoKhL/2JuxWXmvQbb0dmhwj0J2/VHK9U=@dpdk.org X-Gm-Message-State: AOJu0Yx0aI1RVRX1pBXxOCJA2I6Bnd8/0Tk2yNnB6llX7kqT1hXkHZr8 aAxKAC75WczbyzmXrzAWxuT0RNJ3wskwA58zi8zFPk/dq7AD0OTe9X5958Lqo9ZF X-Gm-Gg: ASbGncsHmpLXRi7VggBE8mJpKZPjjvQ3Fap3BlR6r5PCvRh1FaQWq0+GfAFoiNQH0L5 +H5Q+UsUOdd6w71GQgfnx32Q1HdYQ/GV0uoQx1ycYJfwy0yAX9EpD+aPoBfHjXNEizikIlC9/Jx cbBII4exl+aIIjfkt8KtMFDqHVsNkdCBK/5tbCXktrVXBNUdF/CRD0iWOA+Rx6Uiv9mo7G3G1Bb uKVm5cmpKCVe7ZWy1qOuIAk/eIWne2sYUE/yvakJx05ybOSOF6V21S1JMSsoYJZo44BfzuUUMqW ZjCul/6HNeAFi1zf+1Tu0gOCNkpej33GpPyt3EhVLwb7lF/eudezrMtxwHUn5RcE2uNypc91cSD RCjCcdd5gTNd8lKH7HZqIyE2jz/BT X-Google-Smtp-Source: AGHT+IGiv6IO89uETucQINil1MEnm/VRmQitMIn0gSgA7L91FZKA0RAYLaIP3T0BIazpYPKsN6yvTg== X-Received: by 2002:a05:6000:41fa:b0:3b2:fe84:a10 with SMTP id ffacd0b85a97d-3b5f181c283mr12634452f8f.0.1752505965276; Mon, 14 Jul 2025 08:12:45 -0700 (PDT) Received: from localhost ([2a01:4b00:d036:ae00:a923:75e5:f97f:ef33]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3b5e8e0d867sm12874619f8f.61.2025.07.14.08.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Jul 2025 08:12:44 -0700 (PDT) From: luca.boccassi@gmail.com To: Chengwen Feng Cc: Dengdui Huang , dpdk stable Subject: patch 'net/hns3: fix queue TC configuration on VF' has been queued to stable release 22.11.9 Date: Mon, 14 Jul 2025 16:11:08 +0100 Message-ID: <20250714151121.219866-13-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250714151121.219866-1-luca.boccassi@gmail.com> References: <20250630122556.1133654-23-luca.boccassi@gmail.com> <20250714151121.219866-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 22.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 07/16/25. 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/3a3e27e23f1b0ba93b6653e1fa90a78ee37fac3c Thanks. Luca Boccassi --- >From 3a3e27e23f1b0ba93b6653e1fa90a78ee37fac3c Mon Sep 17 00:00:00 2001 From: Chengwen Feng Date: Tue, 1 Jul 2025 17:09:59 +0800 Subject: [PATCH] net/hns3: fix queue TC configuration on VF [ upstream commit a542f48bc0ec83c296ae01ad691479c17caf99b5 ] The VF cannot configure the mapping of queue to TC by directly writing the register. Instead, the mapping must be modified by using firmware command. Fixes: bba636698316 ("net/hns3: support Rx/Tx and related operations") Signed-off-by: Chengwen Feng Signed-off-by: Dengdui Huang --- drivers/net/hns3/hns3_cmd.h | 8 ++++++++ drivers/net/hns3/hns3_rxtx.c | 26 +++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/drivers/net/hns3/hns3_cmd.h b/drivers/net/hns3/hns3_cmd.h index ae797a7692..936e6455f0 100644 --- a/drivers/net/hns3/hns3_cmd.h +++ b/drivers/net/hns3/hns3_cmd.h @@ -178,6 +178,7 @@ enum hns3_opcode_type { /* TQP commands */ HNS3_OPC_QUERY_TX_STATUS = 0x0B03, + HNS3_OPC_TQP_TX_QUEUE_TC = 0x0B04, HNS3_OPC_QUERY_RX_STATUS = 0x0B13, HNS3_OPC_CFG_COM_TQP_QUEUE = 0x0B20, HNS3_OPC_RESET_TQP_QUEUE = 0x0B22, @@ -942,6 +943,13 @@ struct hns3_reset_tqp_queue_cmd { uint8_t rsv[19]; }; +struct hns3vf_tx_ring_tc_cmd { + uint16_t tqp_id; + uint16_t rsv1; + uint8_t tc_id; + uint8_t rsv2[19]; +}; + #define HNS3_CFG_RESET_MAC_B 3 #define HNS3_CFG_RESET_FUNC_B 7 #define HNS3_CFG_RESET_RCB_B 1 diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c index 83837e5c9a..56060730b0 100644 --- a/drivers/net/hns3/hns3_rxtx.c +++ b/drivers/net/hns3/hns3_rxtx.c @@ -1179,12 +1179,14 @@ hns3_init_txq(struct hns3_tx_queue *txq) hns3_init_tx_queue_hw(txq); } -static void +static int hns3_init_tx_ring_tc(struct hns3_adapter *hns) { + struct hns3_cmd_desc desc; + struct hns3vf_tx_ring_tc_cmd *req = (struct hns3vf_tx_ring_tc_cmd *)desc.data; struct hns3_hw *hw = &hns->hw; struct hns3_tx_queue *txq; - int i, num; + int i, num, ret; for (i = 0; i < HNS3_MAX_TC_NUM; i++) { struct hns3_tc_queue_info *tc_queue = &hw->tc_queue[i]; @@ -1199,9 +1201,24 @@ hns3_init_tx_ring_tc(struct hns3_adapter *hns) if (txq == NULL) continue; - hns3_write_dev(txq, HNS3_RING_TX_TC_REG, tc_queue->tc); + if (!hns->is_vf) { + hns3_write_dev(txq, HNS3_RING_TX_TC_REG, tc_queue->tc); + continue; + } + + hns3_cmd_setup_basic_desc(&desc, HNS3_OPC_TQP_TX_QUEUE_TC, false); + req->tqp_id = rte_cpu_to_le_16(num); + req->tc_id = tc_queue->tc; + ret = hns3_cmd_send(hw, &desc, 1); + if (ret != 0) { + hns3_err(hw, "config Tx queue (%u)'s TC failed! ret = %d.", + num, ret); + return ret; + } } } + + return 0; } static int @@ -1277,9 +1294,8 @@ hns3_init_tx_queues(struct hns3_adapter *hns) txq = (struct hns3_tx_queue *)hw->fkq_data.tx_queues[i]; hns3_init_txq(txq); } - hns3_init_tx_ring_tc(hns); - return 0; + return hns3_init_tx_ring_tc(hns); } /* -- 2.47.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-07-14 16:09:41.195711707 +0100 +++ 0013-net-hns3-fix-queue-TC-configuration-on-VF.patch 2025-07-14 16:09:40.708448899 +0100 @@ -1 +1 @@ -From a542f48bc0ec83c296ae01ad691479c17caf99b5 Mon Sep 17 00:00:00 2001 +From 3a3e27e23f1b0ba93b6653e1fa90a78ee37fac3c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a542f48bc0ec83c296ae01ad691479c17caf99b5 ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 4d707c13b2..e21a2b652f 100644 +index ae797a7692..936e6455f0 100644 @@ -32 +33 @@ -@@ -970,6 +971,13 @@ struct hns3_reset_tqp_queue_cmd { +@@ -942,6 +943,13 @@ struct hns3_reset_tqp_queue_cmd { @@ -47 +48 @@ -index f9fde3948a..785e06db9c 100644 +index 83837e5c9a..56060730b0 100644 @@ -50 +51 @@ -@@ -1180,12 +1180,14 @@ hns3_init_txq(struct hns3_tx_queue *txq) +@@ -1179,12 +1179,14 @@ hns3_init_txq(struct hns3_tx_queue *txq) @@ -67 +68 @@ -@@ -1200,9 +1202,24 @@ hns3_init_tx_ring_tc(struct hns3_adapter *hns) +@@ -1199,9 +1201,24 @@ hns3_init_tx_ring_tc(struct hns3_adapter *hns) @@ -93 +94 @@ -@@ -1278,9 +1295,8 @@ hns3_init_tx_queues(struct hns3_adapter *hns) +@@ -1277,9 +1294,8 @@ hns3_init_tx_queues(struct hns3_adapter *hns)