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 3289AA0C52 for ; Mon, 16 Aug 2021 11:03:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2D3154003C; Mon, 16 Aug 2021 11:03:18 +0200 (CEST) Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by mails.dpdk.org (Postfix) with ESMTP id 9A2254003C for ; Mon, 16 Aug 2021 11:03:16 +0200 (CEST) Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPS id 7F7273F0A2 for ; Mon, 16 Aug 2021 09:03:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1629104596; bh=AlAtMmPMNX6Je5qigtr7Ynkp0mVawWmKSlvuvqtd7yw=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=YuoNQlT4yRfdrYX5IQNyvKCj5x4aYgUAFFgTlyl9z5Z5SHb9ygmUhcFRr1MYTMR0h +/YEz+Kou8DxyJnNaCjJJkanhLt0dxG4DlFOU9fl1V9vjB8MX8bvsbIP/VrTibFHcS eDDPrrlPw5Z/rGYDXLGVuODmCdMSMlu76Y92ow1id1XKfJbQij7pFYQNvPFQKE4BUe F0TGj4YT7Tk+x9Fpl9+ZXCSYLMMPOvt0uMWtlp6ZUfwgUtDCRxPzevhGAN3z89aulc kyGFzrcx6bHfQoSDlc6lQ+gMogT+UyRH+lwhvzSQgpF5F0qDYiqiiyDyrJf5LASXlo POFI5pe1LG3yA== Received: by mail-qt1-f198.google.com with SMTP id t35-20020a05622a1823b02902647b518455so8997583qtc.3 for ; Mon, 16 Aug 2021 02:03:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AlAtMmPMNX6Je5qigtr7Ynkp0mVawWmKSlvuvqtd7yw=; b=XclAag6UA3gE1QRoSTim3451aqTl2+7jjGK1CLFn9BlbvwsE1BjBnRq2SKC0vK700E ob/8W1uOWNBtaPp96eOoicurYN7K/sdbZ0TXG914LI641hc70IC5S8LsB0xtgyyeyrE6 f2+yhpNOZEzTDxND/3VPzAY3dOEdnbutwoCOKJnpKDwfmFGZZsoJKJHZEnqWU7KsIXpz nnOdEm+e8q3uWzqrHkvLOnhGC7S1l4vyaAtI9kTd5yYSgoJaDlejbwMvAoDeQm2MmL1I gOmqY3SXaW9NS1prkfZqHy83wnF2Cjo8VBprkukN8SFxoM2MfHVwQrvj5x5zkks8pcFb TYmg== X-Gm-Message-State: AOAM532LmXEqPCr3VwsownvodZaAF7SNc65f3+NlxGNsnQdYcp/toZmc uFPnfuzMSw/JUN5NkILa/Vo+AUClFPyr25u7tbs79yRhDEdZ9o1DP9JCVwgcuQFRu1KX1jYn6LC FvuSOXk2vBF08+xq7IOXqodjKXIrHJJPPzncQ6hhM X-Received: by 2002:a05:620a:1435:: with SMTP id k21mr3334086qkj.442.1629104595554; Mon, 16 Aug 2021 02:03:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxr010lujYJW32ELwU6pjWTCpBfm7WNuL9KatQhhtNc4ZA8wwo4GrHoipb7DOGM2WOLQBm1M8ccvxPdjnq2XGI= X-Received: by 2002:a05:620a:1435:: with SMTP id k21mr3334075qkj.442.1629104595387; Mon, 16 Aug 2021 02:03:15 -0700 (PDT) MIME-Version: 1.0 References: <20210816081511.184844-1-dapengx.yu@intel.com> In-Reply-To: <20210816081511.184844-1-dapengx.yu@intel.com> From: Christian Ehrhardt Date: Mon, 16 Aug 2021 11:02:49 +0200 Message-ID: To: "Yu, DapengX" Cc: dpdk stable Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-stable] [PATCH 19.11] net/ice: fix default RSS key generation 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 Sender: "stable" On Mon, Aug 16, 2021 at 10:15 AM wrote: > > From: Dapeng Yu > > [ upstream commit 03a91d7efb7098ba739ba458bcc118c3e348fae1 ] Thanks, applied > In original implementation, device reconfiguration will generate > a new default RSS key if there is no one from user, it is unexpected > when updating a completely unrelated configuration. > > This patch makes default RSS key unchanged, during the lifetime of the > DPDK application even if there are multiple reconfigurations. > > Fixes: 50370662b727 ("net/ice: support device and queue ops") > > Signed-off-by: Dapeng Yu > --- > drivers/net/ice/ice_ethdev.c | 35 +++++++++++++++++++++++++++++------ > 1 file changed, 29 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c > index 4e15ed54bf..f8046b50fb 100644 > --- a/drivers/net/ice/ice_ethdev.c > +++ b/drivers/net/ice/ice_ethdev.c > @@ -2458,6 +2458,31 @@ ice_dev_uninit(struct rte_eth_dev *dev) > return 0; > } > > +static void > +ice_get_default_rss_key(uint8_t *rss_key, uint32_t rss_key_size) > +{ > + static struct ice_aqc_get_set_rss_keys default_key; > + static bool default_key_done; > + uint8_t *key = (uint8_t *)&default_key; > + size_t i; > + > + if (rss_key_size > sizeof(default_key)) { > + PMD_DRV_LOG(WARNING, > + "requested size %u is larger than default %zu, " > + "only %zu bytes are gotten for key\n", > + rss_key_size, sizeof(default_key), > + sizeof(default_key)); > + } > + > + if (!default_key_done) { > + /* Calculate the default hash key */ > + for (i = 0; i < sizeof(default_key); i++) > + key[i] = (uint8_t)rte_rand(); > + default_key_done = true; > + } > + rte_memcpy(rss_key, key, RTE_MIN(rss_key_size, sizeof(default_key))); > +} > + > static int ice_init_rss(struct ice_pf *pf) > { > struct ice_hw *hw = ICE_PF_TO_HW(pf); > @@ -2505,15 +2530,13 @@ static int ice_init_rss(struct ice_pf *pf) > } > } > /* configure RSS key */ > - if (!rss_conf->rss_key) { > - /* Calculate the default hash key */ > - for (i = 0; i < vsi->rss_key_size; i++) > - vsi->rss_key[i] = (uint8_t)rte_rand(); > - } else { > + if (!rss_conf->rss_key) > + ice_get_default_rss_key(vsi->rss_key, vsi->rss_key_size); > + else > rte_memcpy(vsi->rss_key, rss_conf->rss_key, > RTE_MIN(rss_conf->rss_key_len, > vsi->rss_key_size)); > - } > + > rte_memcpy(key.standard_rss_key, vsi->rss_key, vsi->rss_key_size); > ret = ice_aq_set_rss_key(hw, vsi->idx, &key); > if (ret) > -- > 2.27.0 > -- Christian Ehrhardt Staff Engineer, Ubuntu Server Canonical Ltd