From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id D7FE9568A for ; Tue, 20 Nov 2018 20:15:13 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 12B8CC05D274; Tue, 20 Nov 2018 19:15:13 +0000 (UTC) Received: from ktraynor.remote.csb (unknown [10.36.118.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id BBD65600C3; Tue, 20 Nov 2018 19:15:11 +0000 (UTC) From: Kevin Traynor To: Igor Romanov Cc: Andrew Rybchenko , Chas Williams , dpdk stable Date: Tue, 20 Nov 2018 19:12:24 +0000 Message-Id: <20181120191252.30277-34-ktraynor@redhat.com> In-Reply-To: <20181120191252.30277-1-ktraynor@redhat.com> References: <20181120191252.30277-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Tue, 20 Nov 2018 19:15:13 +0000 (UTC) Subject: [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' has been queued to stable release 18.08.1 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: , X-List-Received-Date: Tue, 20 Nov 2018 19:15:14 -0000 Hi, FYI, your patch has been queued to stable release 18.08.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/23/18. 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. If the code is different (ie: not only metadata diffs), due for example to a change in context or macro names, please double check it. Thanks. Kevin Traynor --- >>From ff0b8562bfb60723a4659e4c1ca3312df772e4ad Mon Sep 17 00:00:00 2001 From: Igor Romanov Date: Wed, 29 Aug 2018 08:51:24 +0100 Subject: [PATCH] net/bonding: do not ignore RSS key on device config [ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ] Bonding driver ignores the value of RSS key (that is set in the port RSS configuration) in bond_ethdev_configure(). So the only way to set non-default RSS key is by using rss_hash_update(). This is not an expected behaviour. Make the bond_ethdev_configure() set default RSS key only if requested key is set to NULL. Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration") Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko Acked-by: Chas Williams --- drivers/net/bonding/rte_eth_bond_pmd.c | 27 ++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index 0f5ab09e3..7814258f2 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -1779,10 +1779,9 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev, /* If RSS is enabled for bonding, try to enable it for slaves */ if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) { - if (bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len - != 0) { + if (internals->rss_key_len != 0) { slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = - bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len; + internals->rss_key_len; slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = - bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key; + internals->rss_key; } else { slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL; @@ -3285,9 +3284,21 @@ bond_ethdev_configure(struct rte_eth_dev *dev) unsigned i, j; - /* If RSS is enabled, fill table and key with default values */ + /* + * If RSS is enabled, fill table with default values and + * set key to the the value specified in port RSS configuration. + * Fall back to default RSS key if the key is not specified + */ if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS) { - dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = internals->rss_key; - dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = 0; - memcpy(internals->rss_key, default_rss_key, 40); + if (dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key != NULL) { + internals->rss_key_len = + dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len; + memcpy(internals->rss_key, + dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key, + internals->rss_key_len); + } else { + internals->rss_key_len = sizeof(default_rss_key); + memcpy(internals->rss_key, default_rss_key, + internals->rss_key_len); + } for (i = 0; i < RTE_DIM(internals->reta_conf); i++) { -- 2.19.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2018-11-20 17:53:08.285098694 +0000 +++ 0034-net-bonding-do-not-ignore-RSS-key-on-device-config.patch 2018-11-20 17:53:07.000000000 +0000 @@ -1,8 +1,10 @@ -From 83cf204a982918fd56b15f9d458d1dfb1e724b5f Mon Sep 17 00:00:00 2001 +From ff0b8562bfb60723a4659e4c1ca3312df772e4ad Mon Sep 17 00:00:00 2001 From: Igor Romanov Date: Wed, 29 Aug 2018 08:51:24 +0100 Subject: [PATCH] net/bonding: do not ignore RSS key on device config +[ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ] + Bonding driver ignores the value of RSS key (that is set in the port RSS configuration) in bond_ethdev_configure(). So the only way to set non-default RSS key is by using rss_hash_update(). This is not an @@ -12,7 +14,6 @@ requested key is set to NULL. Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration") -Cc: stable@dpdk.org Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko