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 574D6A0093 for ; Tue, 19 May 2020 15:06:34 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4E5F51D603; Tue, 19 May 2020 15:06:34 +0200 (CEST) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by dpdk.org (Postfix) with ESMTP id 828881D63F for ; Tue, 19 May 2020 15:06:32 +0200 (CEST) Received: by mail-wm1-f67.google.com with SMTP id u1so2208053wmn.3 for ; Tue, 19 May 2020 06:06:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zlb+4Wo+qaKWAi8EmmUh8JDJPsKGyfJjoMRAWqFtQ38=; b=ac+Hyy9b8T94MSf5rVAIBbNaVpwRqtsC7/fktb/3EhUsjiHIM/ZE0NGujs/+CYTWIG SH3A4lqIF8tFEZiz/3KtI8Huc+XBdXljAkwSvDq8t7tvCztTfhBS9zYgZRltrT2o9TPA tgRX+2I9rGolLB8/g/FtMy7q8znE5eWf53YaVMfX/ZrHb/c1PaIINYztwxSZBCAMqYWN Pz+bqqdYHLeMGTc2//JQKhTOVoiSrswIEV+0pVLe2rs6FvT/ND0IO1QDQM133KhDrTSi IuHoC6NKZYKCN20/ubZ5kzuMBeviHXenVlPM96kjGjVjLnr0i5ShO1vuX+zXM/Larzf1 y0Og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zlb+4Wo+qaKWAi8EmmUh8JDJPsKGyfJjoMRAWqFtQ38=; b=ZZYv2yRndzt1mKYNZCKkrB0QpmpCK4tk5bY4+kfVxtFhXDRk68YwTdhknKTUzEbNKY FFcxjMehPNIYuhQrcPY4WvDBt0owxKhEsmVg0sr8esvmEkdf2qPb2rpBvTxHxH7Yhh3X 3RbBIs8KSRzrz0VabpVltZf/3h3PuKnleGQ1Ubs298yHOarHWFE2S8GuRyjnqagHOmnV S3I+Szev8AgFODyhSO8pY44jwqk9YnjzfAbnjpuiqEspWHNJ3xMS5987NBdyIRw4ryo8 q1uj2e5LiwHRM9c4z9IfpR2oAEa53nqvBVdNoThL6BMCSnlyENc+uWSPWUI6HLVS82rg 7rzA== X-Gm-Message-State: AOAM531xIvRO+hYcZ+cbrUaf0P57fNYtxKhhcKpd4YwaQJDYvD/5M5l/ QLSJvBPLFYYtZjTiHS9lTtYc1DRWBUGx8HM3 X-Google-Smtp-Source: ABdhPJyCgh4o8WSMpFkENERE0/6R1oGY01KuEu6e3zBWXCwNgtCmrLMbQO+htEreXa00fj6jk9DY+g== X-Received: by 2002:a1c:a107:: with SMTP id k7mr5394308wme.92.1589893592188; Tue, 19 May 2020 06:06:32 -0700 (PDT) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id a14sm3732220wme.21.2020.05.19.06.06.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2020 06:06:31 -0700 (PDT) From: luca.boccassi@gmail.com To: Lijun Ou Cc: Wei Hu , dpdk stable Date: Tue, 19 May 2020 14:02:27 +0100 Message-Id: <20200519130549.112823-12-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200519130549.112823-1-luca.boccassi@gmail.com> References: <20200519125804.104349-1-luca.boccassi@gmail.com> <20200519130549.112823-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/hns3: fix configuring RSS hash when rules are flushed' has been queued to stable release 19.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 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 Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/21/20. 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. Thanks. Luca Boccassi --- >From 70b22c9ed2b55a3a523ec68734cd5435d1395a9a Mon Sep 17 00:00:00 2001 From: Lijun Ou Date: Thu, 26 Mar 2020 15:14:31 +0800 Subject: [PATCH] net/hns3: fix configuring RSS hash when rules are flushed [ upstream commit 5e782bc2570c5746b8190d1b5c717de8ee77d0bd ] Currently, when performing test case as follow: 1. Run testpmd application based on hns3 network engine with multiple receive queues(--rxq=N --txq=N, N>1). 2. Create the special RSS rules by "create flow ..." command in the command prompt of the testpmd application. 3. Flush the RSS rules created in step 2 by "flow flush ..." command. 4. Enable RSS by "port config all rss all" command. In step 4, the command exeuctes successfully. This phenomenon is inconsistent with the expectation. The API function named rte_eth_dev_rss_hash_update called in the command should return error and the command should fail. This patch fixes it by adding a flag for disabling RSS in the driver. When RSS rules is flushed, we set the the flag with true, and the '.rss_hash_update' ops implementation function named hns3_dev_rss_hash_update return -EINVAL. Fixes: c37ca66f2b27 ("net/hns3: support RSS") Signed-off-by: Lijun Ou Signed-off-by: Wei Hu (Xavier) --- drivers/net/hns3/hns3_ethdev.c | 1 + drivers/net/hns3/hns3_ethdev.h | 1 + drivers/net/hns3/hns3_ethdev_vf.c | 1 + drivers/net/hns3/hns3_flow.c | 1 + drivers/net/hns3/hns3_rss.c | 3 +++ 5 files changed, 7 insertions(+) diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 7c4c2e42c0..42ef33f4b9 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -2541,6 +2541,7 @@ hns3_get_board_configuration(struct hns3_hw *hw) hw->mac.media_type = cfg.media_type; hw->rss_size_max = cfg.rss_size_max; + hw->rss_dis_flag = false; hw->rx_buf_len = cfg.rx_buf_len; memcpy(hw->mac.mac_addr, cfg.mac_addr, RTE_ETHER_ADDR_LEN); hw->mac.phy_addr = cfg.phy_addr; diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h index 975680ea21..03bbd24dac 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h @@ -358,6 +358,7 @@ struct hns3_hw { /* The configuration info of RSS */ struct hns3_rss_conf rss_info; + bool rss_dis_flag; /* disable rss flag. true: disable, false: enable */ uint8_t num_tc; /* Total number of enabled TCs */ uint8_t hw_tc_map; diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index 2096ad6fcd..879851630d 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -784,6 +784,7 @@ hns3vf_get_configuration(struct hns3_hw *hw) int ret; hw->mac.media_type = HNS3_MEDIA_TYPE_NONE; + hw->rss_dis_flag = false; /* Get queue configuration from PF */ ret = hns3vf_get_queue_info(hw); diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c index 207dd578a0..c7027a779a 100644 --- a/drivers/net/hns3/hns3_flow.c +++ b/drivers/net/hns3/hns3_flow.c @@ -1328,6 +1328,7 @@ hns3_disable_rss(struct hns3_hw *hw) /* Disable RSS */ hw->rss_info.conf.types = 0; + hw->rss_dis_flag = true; return 0; } diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c index b8c20e6d9d..9b6b72908f 100644 --- a/drivers/net/hns3/hns3_rss.c +++ b/drivers/net/hns3/hns3_rss.c @@ -257,6 +257,9 @@ hns3_dev_rss_hash_update(struct rte_eth_dev *dev, uint8_t *key = rss_conf->rss_key; int ret; + if (hw->rss_dis_flag) + return -EINVAL; + rte_spinlock_lock(&hw->lock); ret = hns3_set_rss_tuple_by_rss_hf(hw, tuple, rss_hf); if (ret) -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2020-05-19 14:04:45.078194896 +0100 +++ 0012-net-hns3-fix-configuring-RSS-hash-when-rules-are-flu.patch 2020-05-19 14:04:44.076645835 +0100 @@ -1,8 +1,10 @@ -From 5e782bc2570c5746b8190d1b5c717de8ee77d0bd Mon Sep 17 00:00:00 2001 +From 70b22c9ed2b55a3a523ec68734cd5435d1395a9a Mon Sep 17 00:00:00 2001 From: Lijun Ou Date: Thu, 26 Mar 2020 15:14:31 +0800 Subject: [PATCH] net/hns3: fix configuring RSS hash when rules are flushed +[ upstream commit 5e782bc2570c5746b8190d1b5c717de8ee77d0bd ] + Currently, when performing test case as follow: 1. Run testpmd application based on hns3 network engine with multiple receive queues(--rxq=N --txq=N, N>1). @@ -21,7 +23,6 @@ hns3_dev_rss_hash_update return -EINVAL. Fixes: c37ca66f2b27 ("net/hns3: support RSS") -Cc: stable@dpdk.org Signed-off-by: Lijun Ou Signed-off-by: Wei Hu (Xavier) @@ -34,10 +35,10 @@ 5 files changed, 7 insertions(+) diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c -index 1d19de0e67..86676390fe 100644 +index 7c4c2e42c0..42ef33f4b9 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c -@@ -2663,6 +2663,7 @@ hns3_get_board_configuration(struct hns3_hw *hw) +@@ -2541,6 +2541,7 @@ hns3_get_board_configuration(struct hns3_hw *hw) hw->mac.media_type = cfg.media_type; hw->rss_size_max = cfg.rss_size_max; @@ -46,10 +47,10 @@ memcpy(hw->mac.mac_addr, cfg.mac_addr, RTE_ETHER_ADDR_LEN); hw->mac.phy_addr = cfg.phy_addr; diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h -index 28484188a6..0423e64ea0 100644 +index 975680ea21..03bbd24dac 100644 --- a/drivers/net/hns3/hns3_ethdev.h +++ b/drivers/net/hns3/hns3_ethdev.h -@@ -368,6 +368,7 @@ struct hns3_hw { +@@ -358,6 +358,7 @@ struct hns3_hw { /* The configuration info of RSS */ struct hns3_rss_conf rss_info; @@ -58,10 +59,10 @@ uint8_t num_tc; /* Total number of enabled TCs */ uint8_t hw_tc_map; diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c -index 3c72976f3d..08ae58a794 100644 +index 2096ad6fcd..879851630d 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c -@@ -1022,6 +1022,7 @@ hns3vf_get_configuration(struct hns3_hw *hw) +@@ -784,6 +784,7 @@ hns3vf_get_configuration(struct hns3_hw *hw) int ret; hw->mac.media_type = HNS3_MEDIA_TYPE_NONE; @@ -70,10 +71,10 @@ /* Get queue configuration from PF */ ret = hns3vf_get_queue_info(hw); diff --git a/drivers/net/hns3/hns3_flow.c b/drivers/net/hns3/hns3_flow.c -index 53708d2054..aef301a8a7 100644 +index 207dd578a0..c7027a779a 100644 --- a/drivers/net/hns3/hns3_flow.c +++ b/drivers/net/hns3/hns3_flow.c -@@ -1333,6 +1333,7 @@ hns3_disable_rss(struct hns3_hw *hw) +@@ -1328,6 +1328,7 @@ hns3_disable_rss(struct hns3_hw *hw) /* Disable RSS */ hw->rss_info.conf.types = 0; @@ -82,10 +83,10 @@ return 0; } diff --git a/drivers/net/hns3/hns3_rss.c b/drivers/net/hns3/hns3_rss.c -index 737d5f1093..95a637ddc2 100644 +index b8c20e6d9d..9b6b72908f 100644 --- a/drivers/net/hns3/hns3_rss.c +++ b/drivers/net/hns3/hns3_rss.c -@@ -261,6 +261,9 @@ hns3_dev_rss_hash_update(struct rte_eth_dev *dev, +@@ -257,6 +257,9 @@ hns3_dev_rss_hash_update(struct rte_eth_dev *dev, uint8_t *key = rss_conf->rss_key; int ret;