All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: Edward Cree <ecree.xilinx@gmail.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org, edumazet@google.com,
	pabeni@redhat.com, dxu@dxuuu.xyz, przemyslaw.kitszel@intel.com,
	donald.hunter@gmail.com, gal.pressman@linux.dev,
	tariqt@nvidia.com, willemdebruijn.kernel@gmail.com,
	jdamato@fastly.com
Subject: Re: [PATCH net-next v2 06/12] ethtool: rss: don't report key if device doesn't support it
Date: Tue, 6 Aug 2024 07:07:02 -0700	[thread overview]
Message-ID: <20240806070702.3359e2fe@kernel.org> (raw)
In-Reply-To: <2af37636-de5d-913d-4ccf-9388f1cfbd26@gmail.com>

[found this stuck in my outgoing mail :S]

On Mon, 5 Aug 2024 15:36:28 +0100 Edward Cree wrote:
> On 03/08/2024 05:26, Jakub Kicinski wrote:
> > marvell/otx2 and mvpp2 do not support setting different
> > keys for different RSS contexts. Contexts have separate
> > indirection tables but key is shared with all other contexts.
> > This is likely fine, indirection table is the most important
> > piece.  
> 
> Since drivers that do not support this are the odd ones out,
>  would it be better to invert the sense of the flag?  Or is
>  this to make sure that driver authors who don't think/know
>  about the distinction automatically get safe behaviour?

Yes, I wanted the 0 / default / sloppy choice to be the safe one.
As annoying as it is to have to set it in most drivers, I still
prefer that to the inevitable false-negatives.

> > Don't report the key-related parameters from such drivers.
> > This prevents driver-errors, e.g. otx2 always writes
> > the main key, even when user asks to change per-context key.
> > The second reason is that without this change tracking
> > the keys by the core gets complicated. Even if the driver
> > correctly reject setting key with rss_context != 0,
> > change of the main key would have to be reflected in
> > the XArray for all additional contexts.
> > 
> > Since the additional contexts don't have their own keys
> > not including the attributes (in Netlink speak) seems
> > intuitive. ethtool CLI seems to deal with it just fine.
> > 
> > Reviewed-by: Joe Damato <jdamato@fastly.com>
> > Signed-off-by: Jakub Kicinski <kuba@kernel.org>  
> ...
> > diff --git a/drivers/net/ethernet/sfc/ef100_ethtool.c b/drivers/net/ethernet/sfc/ef100_ethtool.c
> > index 746b5314acb5..127b9d6ade6f 100644
> > --- a/drivers/net/ethernet/sfc/ef100_ethtool.c
> > +++ b/drivers/net/ethernet/sfc/ef100_ethtool.c
> > @@ -58,6 +58,7 @@ const struct ethtool_ops ef100_ethtool_ops = {
> >  
> >  	.get_rxfh_indir_size	= efx_ethtool_get_rxfh_indir_size,
> >  	.get_rxfh_key_size	= efx_ethtool_get_rxfh_key_size,
> > +	.rxfh_per_ctx_key	= 1,  
> 
> I would prefer 'true' for the sfc drivers, I think that
>  better fits the general style of our code.

Sure thing.

> >  	.rxfh_priv_size		= sizeof(struct efx_rss_context_priv),
> >  	.get_rxfh		= efx_ethtool_get_rxfh,
> >  	.set_rxfh		= efx_ethtool_set_rxfh,

> > diff --git a/drivers/net/ethernet/sfc/siena/ethtool.c b/drivers/net/ethernet/sfc/siena/ethtool.c
> > index 4c182d4edfc2..6d4e5101433a 100644
> > --- a/drivers/net/ethernet/sfc/siena/ethtool.c
> > +++ b/drivers/net/ethernet/sfc/siena/ethtool.c
> > @@ -241,6 +241,7 @@ static int efx_ethtool_get_ts_info(struct net_device *net_dev,
> >  
> >  const struct ethtool_ops efx_siena_ethtool_ops = {
> >  	.cap_rss_ctx_supported	= true,
> > +	.rxfh_per_ctx_key	= true,  
> 
> For the record, Siena hardware doesn't actually support
>  custom RSS contexts; the code is only present in the
>  driver as a holdover from when Siena and EF10 used the
>  same driver.  Trying to actually use them on Siena will
>  fail -EOPNOTSUPP.[1]
> I'll send a patch to rip it out.

Ack, will drop this chunk to avoid conflicts, then.

> >  	.supported_coalesce_params = ETHTOOL_COALESCE_USECS |
> >  				     ETHTOOL_COALESCE_USECS_IRQ |
> >  				     ETHTOOL_COALESCE_USE_ADAPTIVE_RX,
> > diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> > index 55c9f613ab64..16f72a556fe9 100644
> > --- a/include/linux/ethtool.h
> > +++ b/include/linux/ethtool.h
> > @@ -731,6 +731,8 @@ struct kernel_ethtool_ts_info {
> >   *	do not have to set this bit.
> >   * @cap_rss_sym_xor_supported: indicates if the driver supports symmetric-xor
> >   *	RSS.
> > + * @rxfh_per_ctx_key: device supports setting different RSS key for each
> > + *	additional context.  
> 
> This comment should really make clear that it covers hfunc and
>  input_xfrm as well, not just the key itself.

Ack.

  reply	other threads:[~2024-08-06 14:07 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-03  4:26 [PATCH net-next v2 00/12] ethtool: rss: driver tweaks and netlink context dumps Jakub Kicinski
2024-08-03  4:26 ` [PATCH net-next v2 01/12] selftests: drv-net: rss_ctx: add identifier to traffic comments Jakub Kicinski
2024-08-04  6:40   ` Gal Pressman
2024-08-05 21:35     ` Jakub Kicinski
2024-08-03  4:26 ` [PATCH net-next v2 02/12] eth: mvpp2: implement new RSS context API Jakub Kicinski
2024-08-05 11:25   ` Edward Cree
2024-08-05 21:29     ` Jakub Kicinski
2024-08-06 13:28       ` Edward Cree
2024-08-06 14:11         ` Jakub Kicinski
2024-08-03  4:26 ` [PATCH net-next v2 03/12] eth: mlx5: allow disabling queues when RSS contexts exist Jakub Kicinski
2024-08-04  6:36   ` Gal Pressman
2024-08-03  4:26 ` [PATCH net-next v2 04/12] ethtool: make ethtool_ops::cap_rss_ctx_supported optional Jakub Kicinski
2024-08-04  6:46   ` Gal Pressman
2024-08-05 11:34   ` Edward Cree
2024-08-03  4:26 ` [PATCH net-next v2 05/12] eth: remove .cap_rss_ctx_supported from updated drivers Jakub Kicinski
2024-08-04  6:47   ` Gal Pressman
2024-08-05 11:34   ` Edward Cree
2024-08-03  4:26 ` [PATCH net-next v2 06/12] ethtool: rss: don't report key if device doesn't support it Jakub Kicinski
2024-08-05 14:36   ` Edward Cree
2024-08-06 14:07     ` Jakub Kicinski [this message]
2024-08-03  4:26 ` [PATCH net-next v2 07/12] ethtool: rss: move the device op invocation out of rss_prepare_data() Jakub Kicinski
2024-08-03  4:26 ` [PATCH net-next v2 08/12] ethtool: rss: report info about additional contexts from XArray Jakub Kicinski
2024-08-06 13:55   ` Edward Cree
2024-08-03  4:26 ` [PATCH net-next v2 09/12] ethtool: rss: support dumping RSS contexts Jakub Kicinski
2024-08-03 18:11   ` Joe Damato
2024-08-05 21:59     ` Jakub Kicinski
2024-08-06 10:09       ` Joe Damato
2024-08-06 10:44       ` Przemek Kitszel
2024-08-06 13:58       ` Edward Cree
2024-08-06 14:17         ` Jakub Kicinski
2024-08-06 14:24   ` Edward Cree
2024-08-06 15:23     ` Jakub Kicinski
2024-08-03  4:26 ` [PATCH net-next v2 10/12] ethtool: rss: support skipping contexts during dump Jakub Kicinski
2024-08-03 18:18   ` Joe Damato
2024-08-06 14:27   ` Edward Cree
2024-08-03  4:26 ` [PATCH net-next v2 11/12] netlink: specs: decode indirection table as u32 array Jakub Kicinski
2024-08-03 18:24   ` Joe Damato
2024-08-03  4:26 ` [PATCH net-next v2 12/12] selftests: drv-net: rss_ctx: test dumping RSS contexts Jakub Kicinski
2024-08-03 18:40   ` Joe Damato
2024-08-06 16:48   ` Edward Cree
2024-08-06 18:28     ` Jakub Kicinski
2024-08-04  6:08 ` [PATCH net-next v2 00/12] ethtool: rss: driver tweaks and netlink context dumps Gal Pressman
2024-08-05 22:13   ` Jakub Kicinski
2024-08-06 12:22     ` Gal Pressman
2024-08-06 14:20       ` Jakub Kicinski
2024-08-06 15:14         ` Gal Pressman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240806070702.3359e2fe@kernel.org \
    --to=kuba@kernel.org \
    --cc=davem@davemloft.net \
    --cc=donald.hunter@gmail.com \
    --cc=dxu@dxuuu.xyz \
    --cc=ecree.xilinx@gmail.com \
    --cc=edumazet@google.com \
    --cc=gal.pressman@linux.dev \
    --cc=jdamato@fastly.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=przemyslaw.kitszel@intel.com \
    --cc=tariqt@nvidia.com \
    --cc=willemdebruijn.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.