From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 8805B2F4F for ; Sun, 6 May 2018 08:38:12 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 35A912214F; Sun, 6 May 2018 02:38:12 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Sun, 06 May 2018 02:38:12 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=3Pxs7S1LdZwqPnR4A tjSoy5EKZgEW0yWqfWpNTkEts8=; b=klreuk5Nq4u3+c/hZHFLviWomQlJYjKn6 mUcx6SyWoAbkSQ25T9R026ybb1bO+Ntrn/muuBBC0jWt3fUcniUINr1nppGannAu fmrWtoq5ahrdwyaEJzj6U2VX7DY6TMEANrtUTrtgrSDNFpNWV8vZgJS1Vy2Te3Mf 1bi4b3AKzCybtfUYq3z2hHP/we3ciKu1DW24hT/wFg80/lMss3lKs0Sbcy7nAEBy 9s/utKk63n73hBOFrCAfB0IWpPukr9ItAsCVa9DzVW668DiZoEPcWkCn/ZTNRD3q xl5O+dM7LhKdb1aXBsFwvieEyx3+mONphL+iucH7gQ1HMXHd73pvA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=3Pxs7S1LdZwqPnR4AtjSoy5EKZgEW0yWqfWpNTkEts8=; b=h16Hkvoo hfsABzP9MbWUZpBgEQ5EaG/kNBOHVdNr9EGZI/6CUfRtmDvDaWsklOIn0UWKszoz qw1BucWHelWSeL1mMu3GeNadZQj7gsvHXWQ828IAKquKENw22dI8yuU7EqAiVH3k SNtc7ktucLqbmFosO+aTErGoufcvaHSHcy6iNG7Mje56UF4VGk5ByB0/v9AOdTqy XRpVc3z/VLKsgaGEzvtdkQqaLTtN2y6bem0Rg2URBRdNsisX2sJvs6wRCiC4h7xj u0a7eWZ1Kzj0+pcBXiGV97PnaCYk4J5cGGOSaeBcG47r/0mfAuUiXWuRosAB6YZ/ L4nvc6azgdMvwA== X-ME-Sender: Received: from yuanhanliu-NB0.tencent.com (unknown [223.74.148.102]) by mail.messagingengine.com (Postfix) with ESMTPA id 6FDE710256; Sun, 6 May 2018 02:38:10 -0400 (EDT) From: Yuanhan Liu To: Ivan Malov Cc: Andrew Rybchenko , dpdk stable Date: Sun, 6 May 2018 14:36:38 +0800 Message-Id: <20180506063639.23196-25-yliu@fridaylinux.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180506063639.23196-1-yliu@fridaylinux.org> References: <20180506063639.23196-1-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'net/sfc: process RSS settings on Rx configure step' has been queued to LTS release 17.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: , X-List-Received-Date: Sun, 06 May 2018 06:38:12 -0000 Hi, FYI, your patch has been queued to LTS release 17.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/09/18. So please shout if anyone has objections. Thanks. --yliu --- >>From ec3882def363854ef1c2393e76cbe13a972d28ca Mon Sep 17 00:00:00 2001 From: Ivan Malov Date: Wed, 25 Apr 2018 18:51:41 +0100 Subject: [PATCH] net/sfc: process RSS settings on Rx configure step [ upstream commit 7803554a9e388538fc3ad32dedffbbe2dde055c8 ] One may submit advanced RSS settings as part of rte_eth_conf to customise RSS configuration from the very beginning. Currently the driver does not check that piece of settings and proceeds with default choices for RSS hash functions and RSS key. This patch implements the required processing. Fixes: 4ec1fc3ba881 ("net/sfc: add basic stubs for RSS support on driver attach") Signed-off-by: Ivan Malov Signed-off-by: Andrew Rybchenko --- drivers/net/sfc/sfc_rx.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index be778d387..8fc93d682 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -1096,6 +1096,41 @@ sfc_efx_to_rte_hash_type(efx_rx_hash_type_t efx_hash_types) #if EFSYS_OPT_RX_SCALE static int +sfc_rx_process_adv_conf_rss(struct sfc_adapter *sa, + struct rte_eth_rss_conf *conf) +{ + efx_rx_hash_type_t efx_hash_types = sa->rss_hash_types; + + if (sa->rss_support != EFX_RX_SCALE_EXCLUSIVE) { + if ((conf->rss_hf != 0 && conf->rss_hf != SFC_RSS_OFFLOADS) || + conf->rss_key != NULL) + return EINVAL; + } + + if (conf->rss_hf != 0) { + if ((conf->rss_hf & ~SFC_RSS_OFFLOADS) != 0) { + sfc_err(sa, "unsupported hash functions requested"); + return EINVAL; + } + + efx_hash_types = sfc_rte_to_efx_hash_type(conf->rss_hf); + } + + if (conf->rss_key != NULL) { + if (conf->rss_key_len != sizeof(sa->rss_key)) { + sfc_err(sa, "RSS key size is wrong (should be %lu)", + sizeof(sa->rss_key)); + return EINVAL; + } + rte_memcpy(sa->rss_key, conf->rss_key, sizeof(sa->rss_key)); + } + + sa->rss_hash_types = efx_hash_types; + + return 0; +} + +static int sfc_rx_rss_config(struct sfc_adapter *sa) { int rc = 0; @@ -1347,16 +1382,23 @@ sfc_rx_configure(struct sfc_adapter *sa) MIN(sa->rxq_count, EFX_MAXRSS) : 0; if (sa->rss_channels > 0) { + struct rte_eth_rss_conf *adv_conf_rss; unsigned int sw_index; for (sw_index = 0; sw_index < EFX_RSS_TBL_SIZE; ++sw_index) sa->rss_tbl[sw_index] = sw_index % sa->rss_channels; + + adv_conf_rss = &dev_conf->rx_adv_conf.rss_conf; + rc = sfc_rx_process_adv_conf_rss(sa, adv_conf_rss); + if (rc != 0) + goto fail_rx_process_adv_conf_rss; } #endif done: return 0; +fail_rx_process_adv_conf_rss: fail_rx_qinit_info: fail_rxqs_realloc: fail_rxqs_alloc: -- 2.11.0