[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALs4sv1osSgvgHysDTgR=d=6cLGNyn-ha0y9fh+=wUpOKR3m=Q@mail.gmail.com>
Date: Fri, 26 Jul 2024 11:45:30 +0530
From: Pavan Chebbi <pavan.chebbi@...adcom.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: davem@...emloft.net, netdev@...r.kernel.org, edumazet@...gle.com,
pabeni@...hat.com, michael.chan@...adcom.com, shuah@...nel.org,
ecree.xilinx@...il.com, przemyslaw.kitszel@...el.com, ahmed.zaki@...el.com,
andrew@...n.ch, willemb@...gle.com, petrm@...dia.com
Subject: Re: [PATCH net 2/5] eth: bnxt: populate defaults in the RSS context struct
On Fri, Jul 26, 2024 at 3:54 AM Jakub Kicinski <kuba@...nel.org> wrote:
>
> As described in the kdoc for .create_rxfh_context we are responsible
> for populating the defaults. The core will not call .get_rxfh
> for non-0 context.
>
> The problem can be easily observed since Netlink doesn't currently
> use the cache. Using netlink ethtool:
>
> $ ethtool -x eth0 context 1
> [...]
> RSS hash key:
> 13:60:cd:60:14:d3:55:36:86:df:90:f2:96:14:e2:21:05:57:a8:8f:a5:12:5e:54:62:7f:fd:3c:15:7e:76:05:71:42:a2:9a:73:80:09:9c
> RSS hash function:
> toeplitz: on
> xor: off
> crc32: off
>
> But using IOCTL ethtool shows:
>
> $ ./ethtool-old -x eth0 context 1
> [...]
> RSS hash key:
> 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
> RSS hash function:
> Operation not supported
>
> Fixes: 7964e7884643 ("net: ethtool: use the tracking array for get_rxfh on custom RSS contexts")
> Signed-off-by: Jakub Kicinski <kuba@...nel.org>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> index 0425a54eca98..ab8e3f197e7b 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> @@ -1921,8 +1921,12 @@ static int bnxt_create_rxfh_context(struct net_device *dev,
> if (rc)
> goto out;
>
> + /* Populate defaults in the context */
> bnxt_set_dflt_rss_indir_tbl(bp, ctx);
> + ctx->hfunc = ETH_RSS_HASH_TOP;
> memcpy(vnic->rss_hash_key, bp->rss_hash_key, HW_HASH_KEY_SIZE);
> + memcpy(ethtool_rxfh_context_key(ctx),
> + bp->rss_hash_key, HW_HASH_KEY_SIZE);
>
> rc = bnxt_hwrm_vnic_alloc(bp, vnic, 0, bp->rx_nr_rings);
> if (rc) {
> --
> 2.45.2
>
Reviewed-by: Pavan Chebbi <pavan.chebbi@...adcom.com>
Thank you.
Download attachment "smime.p7s" of type "application/pkcs7-signature" (4209 bytes)
Powered by blists - more mailing lists