From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com,
dxu@dxuuu.xyz, ecree.xilinx@gmail.com,
przemyslaw.kitszel@intel.com, donald.hunter@gmail.com,
gal.pressman@linux.dev, tariqt@nvidia.com,
willemdebruijn.kernel@gmail.com, jdamato@fastly.com,
Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net-next v2 08/12] ethtool: rss: report info about additional contexts from XArray
Date: Fri, 2 Aug 2024 21:26:20 -0700 [thread overview]
Message-ID: <20240803042624.970352-9-kuba@kernel.org> (raw)
In-Reply-To: <20240803042624.970352-1-kuba@kernel.org>
IOCTL already uses the XArray when reporting info about additional
contexts. Do the same thing in netlink code.
Reviewed-by: Joe Damato <jdamato@fastly.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
| 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
--git a/net/ethtool/rss.c b/net/ethtool/rss.c
index 5c477cc36251..023782ca1230 100644
--- a/net/ethtool/rss.c
+++ b/net/ethtool/rss.c
@@ -82,7 +82,6 @@ rss_prepare_get(const struct rss_req_info *request, struct net_device *dev,
rxfh.indir = data->indir_table;
rxfh.key_size = data->hkey_size;
rxfh.key = data->hkey;
- rxfh.rss_context = request->rss_context;
ret = ops->get_rxfh(dev, &rxfh);
if (ret)
@@ -95,6 +94,41 @@ rss_prepare_get(const struct rss_req_info *request, struct net_device *dev,
return ret;
}
+static int
+rss_prepare_ctx(const struct rss_req_info *request, struct net_device *dev,
+ struct rss_reply_data *data, const struct genl_info *info)
+{
+ struct ethtool_rxfh_context *ctx;
+ u32 total_size, indir_bytes;
+ u8 *rss_config;
+
+ ctx = xa_load(&dev->ethtool->rss_ctx, request->rss_context);
+ if (!ctx)
+ return -ENOENT;
+
+ data->indir_size = ctx->indir_size;
+ data->hkey_size = ctx->key_size;
+ data->hfunc = ctx->hfunc;
+ data->input_xfrm = ctx->input_xfrm;
+
+ indir_bytes = data->indir_size * sizeof(u32);
+ total_size = indir_bytes + data->hkey_size;
+ rss_config = kzalloc(total_size, GFP_KERNEL);
+ if (!rss_config)
+ return -ENOMEM;
+
+ data->indir_table = (u32 *)rss_config;
+ memcpy(data->indir_table, ethtool_rxfh_context_indir(ctx), indir_bytes);
+
+ if (data->hkey_size) {
+ data->hkey = rss_config + indir_bytes;
+ memcpy(data->hkey, ethtool_rxfh_context_key(ctx),
+ data->hkey_size);
+ }
+
+ return 0;
+}
+
static int
rss_prepare_data(const struct ethnl_req_info *req_base,
struct ethnl_reply_data *reply_base,
@@ -115,6 +149,7 @@ rss_prepare_data(const struct ethnl_req_info *req_base,
return -EOPNOTSUPP;
data->no_key_fields = !ops->rxfh_per_ctx_key;
+ return rss_prepare_ctx(request, dev, data, info);
}
return rss_prepare_get(request, dev, data, info);
--
2.45.2
next prev parent reply other threads:[~2024-08-03 4:26 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
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 ` Jakub Kicinski [this message]
2024-08-06 13:55 ` [PATCH net-next v2 08/12] ethtool: rss: report info about additional contexts from XArray 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=20240803042624.970352-9-kuba@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.