netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: <edward.cree@amd.com>
Cc: <linux-net-drivers@amd.com>, <davem@davemloft.com>,
	<edumazet@google.com>, <pabeni@redhat.com>,
	Edward Cree <ecree.xilinx@gmail.com>, <netdev@vger.kernel.org>,
	<habetsm.xilinx@gmail.com>, <sudheer.mogilappagari@intel.com>,
	<jdamato@fastly.com>, <mw@semihalf.com>, <linux@armlinux.org.uk>,
	<sgoutham@marvell.com>, <gakula@marvell.com>,
	<sbhatta@marvell.com>, <hkelam@marvell.com>, <saeedm@nvidia.com>,
	<leon@kernel.org>, <jacob.e.keller@intel.com>, <andrew@lunn.ch>,
	<ahmed.zaki@intel.com>
Subject: Re: [PATCH v5 net-next 4/7] net: ethtool: let the core choose RSS context IDs
Date: Wed, 19 Jun 2024 10:24:35 -0700	[thread overview]
Message-ID: <20240619102435.52b7be88@kernel.org> (raw)
In-Reply-To: <7552f2ab4cf66232baf03d3bc3a47fc1341761f9.1718750587.git.ecree.xilinx@gmail.com>

On Tue, 18 Jun 2024 23:44:24 +0100 edward.cree@amd.com wrote:
> + * @create_rxfh_context: Create a new RSS context with the specified RX flow
> + *	hash indirection table, hash key, and hash function.
> + *	Parameters which are set to %NULL or zero will be populated to
> + *	appropriate defaults by the driver.

The defaults will most likely "inherit" whatever is set in context 0.
So the driver _may_ init the values according to its preferences
but they will not be used by the core (specifically not reported to
user space via ethtool netlink)

Does that match your thinking?

> + *	The &struct ethtool_rxfh_context for this context is passed in @ctx;
> + *	note that the indir table, hkey and hfunc are not yet populated as
> + *	of this call.  The driver does not need to update these; the core
> + *	will do so if this op succeeds.
> + *	If the driver provides this method, it must also provide
> + *	@modify_rxfh_context and @remove_rxfh_context.
> + *	Returns a negative error code or zero.
> + * @modify_rxfh_context: Reconfigure the specified RSS context.  Allows setting
> + *	the contents of the RX flow hash indirection table, hash key, and/or
> + *	hash function associated with the given context.
> + *	Parameters which are set to %NULL or zero will remain unchanged.
> + *	The &struct ethtool_rxfh_context for this context is passed in @ctx;
> + *	note that it will still contain the *old* settings.  The driver does
> + *	not need to update these; the core will do so if this op succeeds.
> + *	Returns a negative error code or zero. An error code must be returned
> + *	if at least one unsupported change was requested.
> + * @remove_rxfh_context: Remove the specified RSS context.
> + *	The &struct ethtool_rxfh_context for this context is passed in @ctx.
> + *	Returns a negative error code or zero.
>   * @get_channels: Get number of channels.
>   * @set_channels: Set number of channels.  Returns a negative error code or
>   *	zero.
> @@ -906,6 +933,7 @@ struct ethtool_ops {
>  	u32     cap_rss_ctx_supported:1;
>  	u32	cap_rss_sym_xor_supported:1;
>  	u16	rxfh_priv_size;
> +	u32	rxfh_max_context_id;
>  	u32	supported_coalesce_params;
>  	u32	supported_ring_params;
>  	void	(*get_drvinfo)(struct net_device *, struct ethtool_drvinfo *);
> @@ -968,6 +996,15 @@ struct ethtool_ops {
>  	int	(*get_rxfh)(struct net_device *, struct ethtool_rxfh_param *);
>  	int	(*set_rxfh)(struct net_device *, struct ethtool_rxfh_param *,
>  			    struct netlink_ext_ack *extack);
> +	int	(*create_rxfh_context)(struct net_device *,
> +				       struct ethtool_rxfh_context *ctx,
> +				       const struct ethtool_rxfh_param *rxfh);
> +	int	(*modify_rxfh_context)(struct net_device *,
> +				       struct ethtool_rxfh_context *ctx,
> +				       const struct ethtool_rxfh_param *rxfh);
> +	int	(*remove_rxfh_context)(struct net_device *,
> +				       struct ethtool_rxfh_context *ctx,
> +				       u32 rss_context);

Can we make remove void? It's sort of a cleanup, cleanups which can
fail make life hard.

  reply	other threads:[~2024-06-19 17:24 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-18 22:44 [PATCH v5 net-next 0/7] ethtool: track custom RSS contexts in the core edward.cree
2024-06-18 22:44 ` [PATCH v5 net-next 1/7] net: move ethtool-related netdev state into its own struct edward.cree
2024-06-18 23:05   ` David Wei
2024-06-18 23:43     ` Jakub Kicinski
2024-06-18 23:45       ` David Wei
2024-06-19  0:21         ` Jakub Kicinski
2024-06-18 22:44 ` [PATCH v5 net-next 2/7] net: ethtool: attach an XArray of custom RSS contexts to a netdevice edward.cree
2024-06-18 23:49   ` Jakub Kicinski
2024-06-19 14:30   ` Jakub Kicinski
2024-06-18 22:44 ` [PATCH v5 net-next 3/7] net: ethtool: record custom RSS contexts in the XArray edward.cree
2024-06-19  0:46   ` David Wei
2024-06-19 11:59     ` Edward Cree
2024-06-18 22:44 ` [PATCH v5 net-next 4/7] net: ethtool: let the core choose RSS context IDs edward.cree
2024-06-19 17:24   ` Jakub Kicinski [this message]
2024-06-19 20:08     ` Jakub Kicinski
2024-06-20  4:42     ` Edward Cree
2024-06-18 22:44 ` [PATCH v5 net-next 5/7] net: ethtool: add an extack parameter to new rxfh_context APIs edward.cree
2024-06-18 22:44 ` [PATCH v5 net-next 6/7] net: ethtool: add a mutex protecting RSS contexts edward.cree
2024-06-18 22:44 ` [PATCH v5 net-next 7/7] sfc: use new rxfh_context API edward.cree
2024-06-19  0:19 ` [PATCH v5 net-next 0/7] ethtool: track custom RSS contexts in the core Jakub Kicinski
2024-06-19 12:00   ` Edward Cree

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=20240619102435.52b7be88@kernel.org \
    --to=kuba@kernel.org \
    --cc=ahmed.zaki@intel.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.com \
    --cc=ecree.xilinx@gmail.com \
    --cc=edumazet@google.com \
    --cc=edward.cree@amd.com \
    --cc=gakula@marvell.com \
    --cc=habetsm.xilinx@gmail.com \
    --cc=hkelam@marvell.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jdamato@fastly.com \
    --cc=leon@kernel.org \
    --cc=linux-net-drivers@amd.com \
    --cc=linux@armlinux.org.uk \
    --cc=mw@semihalf.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.com \
    --cc=sbhatta@marvell.com \
    --cc=sgoutham@marvell.com \
    --cc=sudheer.mogilappagari@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).