From: Jakub Kicinski <kuba@kernel.org>
To: Taehee Yoo <ap420073@gmail.com>
Cc: davem@davemloft.net, pabeni@redhat.com, edumazet@google.com,
almasrymina@google.com, donald.hunter@gmail.com, corbet@lwn.net,
michael.chan@broadcom.com, andrew+netdev@lunn.ch,
hawk@kernel.org, ilias.apalodimas@linaro.org, ast@kernel.org,
daniel@iogearbox.net, john.fastabend@gmail.com, dw@davidwei.uk,
sdf@fomichev.me, asml.silence@gmail.com, brett.creeley@amd.com,
linux-doc@vger.kernel.org, netdev@vger.kernel.org,
kory.maincent@bootlin.com, maxime.chevallier@bootlin.com,
danieller@nvidia.com, hengqi@linux.alibaba.com,
ecree.xilinx@gmail.com, przemyslaw.kitszel@intel.com,
hkallweit1@gmail.com, ahmed.zaki@intel.com,
rrameshbabu@nvidia.com, idosch@nvidia.com, jiri@resnulli.us,
bigeasy@linutronix.de, lorenzo@kernel.org, jdamato@fastly.com,
aleksander.lobakin@intel.com, kaiyuanz@google.com,
willemb@google.com, daniel.zahka@gmail.com
Subject: Re: [PATCH net-next v6 4/9] net: ethtool: add support for configuring hds-thresh
Date: Wed, 18 Dec 2024 18:35:47 -0800 [thread overview]
Message-ID: <20241218183547.45273b87@kernel.org> (raw)
In-Reply-To: <20241218144530.2963326-5-ap420073@gmail.com>
On Wed, 18 Dec 2024 14:45:25 +0000 Taehee Yoo wrote:
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index 4e451084d58a..4f407ce9eed1 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -78,6 +78,8 @@ enum {
> * @cqe_size: Size of TX/RX completion queue event
> * @tx_push_buf_len: Size of TX push buffer
> * @tx_push_buf_max_len: Maximum allowed size of TX push buffer
> + * @hds_thresh: Threshold value of header-data-split-thresh
> + * @hds_thresh_max: Maximum allowed threshold of header-data-split-thresh
nit: s/allowed/supported/
> +u8 dev_xdp_sb_prog_count(struct net_device *dev)
> +{
> + u8 count = 0;
> + int i;
> +
> + for (i = 0; i < __MAX_XDP_MODE; i++)
> + if (dev->xdp_state[i].prog &&
> + !dev->xdp_state[i].prog->aux->xdp_has_frags)
> + count++;
> + return count;
> +}
> +EXPORT_SYMBOL_GPL(dev_xdp_sb_prog_count);
No need to export this, AFAICT, none of the callers can be built
as a module.
> + hds_config_mod = old_hds_config != kernel_ringparam.tcp_data_split;
Does it really matter if we modified the HDS setting for the XDP check?
Whether it was already set or the current config is asking for it to be
set having XDP SB and HDS is invalid, we can return an error.
> + if (kernel_ringparam.tcp_data_split == ETHTOOL_TCP_DATA_SPLIT_ENABLED &&
> + hds_config_mod && dev_xdp_sb_prog_count(dev)) {
> + NL_SET_ERR_MSG(info->extack,
NL_SET_ERR_MSG_ATTR(info->extack,
tb[ETHTOOL_A_RINGS_TCP_DATA_SPLIT],
...
> + "tcp-data-split can not be enabled with single buffer XDP");
> + return -EINVAL;
> + }
> +
> + if (kernel_ringparam.hds_thresh > kernel_ringparam.hds_thresh_max) {
> + NL_SET_BAD_ATTR(info->extack,
> + tb[ETHTOOL_A_RINGS_HDS_THRESH_MAX]);
> + return -ERANGE;
> + }
Can this condition not be handled by the big if "ladder" below?
I mean like this:
@@ -282,6 +276,8 @@ ethnl_set_rings(struct ethnl_req_info *req_info, struct genl_info *info)
err_attr = tb[ETHTOOL_A_RINGS_RX_JUMBO];
else if (ringparam.tx_pending > ringparam.tx_max_pending)
err_attr = tb[ETHTOOL_A_RINGS_TX];
+ else if (kernel_ringparam.hds_thresh > kernel_ringparam.hds_thresh_max)
+ err_attr = tb[ETHTOOL_A_RINGS_HDS_THRESH_MAX];
else
err_attr = NULL;
if (err_attr) {
> /* ensure new ring parameters are within limits */
> if (ringparam.rx_pending > ringparam.rx_max_pending)
> err_attr = tb[ETHTOOL_A_RINGS_RX];
next prev parent reply other threads:[~2024-12-19 2:35 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-18 14:45 [PATCH net-next v6 0/9] bnxt_en: implement tcp-data-split and thresh option Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 1/9] bnxt_en: add support for rx-copybreak ethtool command Taehee Yoo
2024-12-19 2:07 ` Jakub Kicinski
2024-12-19 13:24 ` Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 2/9] net: ethtool: add hds_config member in ethtool_netdev_state Taehee Yoo
2024-12-19 2:16 ` Jakub Kicinski
2024-12-18 14:45 ` [PATCH net-next v6 3/9] bnxt_en: add support for tcp-data-split ethtool command Taehee Yoo
2024-12-19 2:25 ` Jakub Kicinski
2024-12-19 2:41 ` Jakub Kicinski
2024-12-19 14:05 ` Taehee Yoo
2024-12-19 14:29 ` Jakub Kicinski
2024-12-19 15:14 ` Taehee Yoo
2024-12-19 15:25 ` Jakub Kicinski
2024-12-19 19:33 ` Andy Gospodarek
2024-12-19 20:18 ` Jakub Kicinski
2024-12-19 23:41 ` Michael Chan
2024-12-20 2:08 ` Jakub Kicinski
2024-12-18 14:45 ` [PATCH net-next v6 4/9] net: ethtool: add support for configuring hds-thresh Taehee Yoo
2024-12-19 2:35 ` Jakub Kicinski [this message]
2024-12-19 14:10 ` Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 5/9] bnxt_en: add support for hds-thresh ethtool command Taehee Yoo
2024-12-19 2:40 ` Jakub Kicinski
2024-12-19 14:12 ` Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 6/9] net: devmem: add ring parameter filtering Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 7/9] net: ethtool: " Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 8/9] net: disallow setup single buffer XDP when tcp-data-split is enabled Taehee Yoo
2024-12-19 2:44 ` Jakub Kicinski
2024-12-19 14:14 ` Taehee Yoo
2024-12-18 14:45 ` [PATCH net-next v6 9/9] netdevsim: add HDS feature Taehee Yoo
2024-12-19 2:49 ` Jakub Kicinski
2024-12-19 14:37 ` Taehee Yoo
2024-12-19 14:45 ` Jakub Kicinski
2024-12-19 15:19 ` Taehee Yoo
2024-12-19 15:28 ` Jakub Kicinski
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=20241218183547.45273b87@kernel.org \
--to=kuba@kernel.org \
--cc=ahmed.zaki@intel.com \
--cc=aleksander.lobakin@intel.com \
--cc=almasrymina@google.com \
--cc=andrew+netdev@lunn.ch \
--cc=ap420073@gmail.com \
--cc=asml.silence@gmail.com \
--cc=ast@kernel.org \
--cc=bigeasy@linutronix.de \
--cc=brett.creeley@amd.com \
--cc=corbet@lwn.net \
--cc=daniel.zahka@gmail.com \
--cc=daniel@iogearbox.net \
--cc=danieller@nvidia.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=dw@davidwei.uk \
--cc=ecree.xilinx@gmail.com \
--cc=edumazet@google.com \
--cc=hawk@kernel.org \
--cc=hengqi@linux.alibaba.com \
--cc=hkallweit1@gmail.com \
--cc=idosch@nvidia.com \
--cc=ilias.apalodimas@linaro.org \
--cc=jdamato@fastly.com \
--cc=jiri@resnulli.us \
--cc=john.fastabend@gmail.com \
--cc=kaiyuanz@google.com \
--cc=kory.maincent@bootlin.com \
--cc=linux-doc@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=maxime.chevallier@bootlin.com \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=rrameshbabu@nvidia.com \
--cc=sdf@fomichev.me \
--cc=willemb@google.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).