From: Jakub Kicinski <kuba@kernel.org>
To: <edward.cree@amd.com>
Cc: <linux-net-drivers@amd.com>, <davem@davemloft.net>,
<pabeni@redhat.com>, <edumazet@google.com>,
Edward Cree <ecree.xilinx@gmail.com>, <netdev@vger.kernel.org>,
<habetsm.xilinx@gmail.com>, <sudheer.mogilappagari@intel.com>
Subject: Re: [RFC PATCH net-next 1/6] net: ethtool: attach an IDR of custom RSS contexts to a netdevice
Date: Mon, 3 Apr 2023 14:43:57 -0700 [thread overview]
Message-ID: <20230403144357.2434352d@kernel.org> (raw)
In-Reply-To: <671909f108e480d961b2c170122520dffa166b77.1680538846.git.ecree.xilinx@gmail.com>
On Mon, 3 Apr 2023 17:32:58 +0100 edward.cree@amd.com wrote:
> From: Edward Cree <ecree.xilinx@gmail.com>
>
> Each context stores the RXFH settings (indir, key, and hfunc) as well
> as optionally some driver private data.
> Delete any still-existing contexts at netdev unregister time.
> +/**
> + * struct ethtool_rxfh_context - a custom RSS context configuration
> + * @indir_size: Number of u32 entries in indirection table
> + * @key_size: Size of hash key, in bytes
> + * @hfunc: RSS hash function identifier. One of the %ETH_RSS_HASH_*
> + * @priv_size: Size of driver private data, in bytes
> + */
> +struct ethtool_rxfh_context {
> + u32 indir_size;
> + u32 key_size;
> + u8 hfunc;
> + u16 priv_size;
> + /* private: indirection table, hash key, and driver private data are
> + * stored sequentially in @data area. Use below helpers to access
> + */
> + u8 data[];
I think that something needs to get aligned here...
Driver priv needs to guarantee ulong alignment in case someone puts
a pointer in it.
> +};
> +
> +static inline u32 *ethtool_rxfh_context_indir(struct ethtool_rxfh_context *ctx)
> +{
> + return (u32 *)&ctx->data;
> +}
> +
> +static inline u8 *ethtool_rxfh_context_key(struct ethtool_rxfh_context *ctx)
> +{
> + return (u8 *)(ethtool_rxfh_context_indir(ctx) + ctx->indir_size);
> +}
> +
> +static inline void *ethtool_rxfh_context_priv(struct ethtool_rxfh_context *ctx)
> +{
> + return ethtool_rxfh_context_key(ctx) + ctx->key_size;
ALIGN_PTR() ... ?
Or align data[] and reorder..
> +}
> +
> /* declare a link mode bitmap */
> #define __ETHTOOL_DECLARE_LINK_MODE_MASK(name) \
> DECLARE_BITMAP(name, __ETHTOOL_LINK_MODE_MASK_NBITS)
> + u32 rss_ctx_max_id;
> + struct idr rss_ctx;
noob question, why not xarray?
Isn't IDR just a legacy wrapper around xarray anyway?
next prev parent reply other threads:[~2023-04-03 21:45 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-03 16:32 [RFC PATCH net-next 0/6] ethtool: track custom RSS contexts in the core edward.cree
2023-04-03 16:32 ` [RFC PATCH net-next 1/6] net: ethtool: attach an IDR of custom RSS contexts to a netdevice edward.cree
2023-04-03 21:43 ` Jakub Kicinski [this message]
2023-04-04 11:30 ` Edward Cree
2023-04-04 23:36 ` Jakub Kicinski
2023-04-03 16:32 ` [RFC PATCH net-next 2/6] net: ethtool: record custom RSS contexts in the IDR edward.cree
2023-04-03 21:48 ` Jakub Kicinski
2023-04-04 11:49 ` Edward Cree
2023-04-04 23:40 ` Jakub Kicinski
2023-04-05 9:34 ` Edward Cree
2023-04-06 9:07 ` Dan Carpenter
2023-04-06 15:45 ` Edward Cree
2023-04-03 16:33 ` [RFC PATCH net-next 3/6] net: ethtool: let the core choose RSS context IDs edward.cree
2023-04-03 21:54 ` Jakub Kicinski
2023-04-04 12:14 ` Edward Cree
2023-04-04 23:42 ` Jakub Kicinski
2023-04-03 16:33 ` [RFC PATCH net-next 4/6] net: ethtool: pass ctx_priv and create into .set_rxfh_context edward.cree
2023-04-11 19:45 ` kernel test robot
2023-04-03 16:33 ` [RFC PATCH net-next 5/6] net: ethtool: add a mutex protecting RSS contexts edward.cree
2023-04-03 22:03 ` Jakub Kicinski
2023-04-04 12:32 ` Edward Cree
2023-04-04 23:46 ` Jakub Kicinski
2023-04-03 16:33 ` [RFC PATCH net-next 6/6] sfc: use new .set_rxfh_context API 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=20230403144357.2434352d@kernel.org \
--to=kuba@kernel.org \
--cc=davem@davemloft.net \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=edward.cree@amd.com \
--cc=habetsm.xilinx@gmail.com \
--cc=linux-net-drivers@amd.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.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 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.