From: Jakub Kicinski <kuba@kernel.org>
To: Huazhong Tan <tanhuazhong@huawei.com>
Cc: <davem@davemloft.net>, <netdev@vger.kernel.org>,
<salil.mehta@huawei.com>, <yisen.zhuang@huawei.com>,
<huangdaode@huawei.com>, <linuxarm@huawei.com>,
<dledford@redhat.com>, <jgg@ziepe.ca>, <netanel@amazon.com>,
<akiyano@amazon.com>, <thomas.lendacky@amd.com>,
<irusskikh@marvell.com>, <michael.chan@broadcom.com>,
<edwin.peer@broadcom.com>, <rohitm@chelsio.com>,
<jesse.brandeburg@intel.com>, <jacob.e.keller@intel.com>,
<ioana.ciornei@nxp.com>, <vladimir.oltean@nxp.com>,
<sgoutham@marvell.com>, <sbhatta@marvell.com>,
<saeedm@nvidia.com>, <ecree.xilinx@gmail.com>,
<grygorii.strashko@ti.com>, <merez@codeaurora.org>,
<kvalo@codeaurora.org>, <linux-wireless@vger.kernel.org>
Subject: Re: [RFC net-next 2/4] ethtool: extend coalesce setting uAPI with CQE mode
Date: Wed, 26 May 2021 17:00:33 -0700 [thread overview]
Message-ID: <20210526170033.62c8e6eb@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com> (raw)
In-Reply-To: <1622021262-8881-3-git-send-email-tanhuazhong@huawei.com>
On Wed, 26 May 2021 17:27:40 +0800 Huazhong Tan wrote:
> Currently, there many drivers who support CQE mode configuration,
> some configure it as a fixed when initialized, some provide an
> interface to change it by ethtool private flags. In order make it
> more generic, add 'ETHTOOL_A_COALESCE_USE_CQE_TX' and
> 'ETHTOOL_A_COALESCE_USE_CQE_RX' attribute and expand struct
> kernel_ethtool_coalesce with use_cqe_mode_tx and use_cqe_mode_rx,
> then these parameters can be accessed by ethtool netlink coalesce
> uAPI.
>
> Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
> diff --git a/Documentation/networking/ethtool-netlink.rst b/Documentation/networking/ethtool-netlink.rst
> index 25131df..975394e 100644
> --- a/Documentation/networking/ethtool-netlink.rst
> +++ b/Documentation/networking/ethtool-netlink.rst
> @@ -937,6 +937,8 @@ Kernel response contents:
> ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx
> ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx
> ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval
> + ``ETHTOOL_A_COALESCE_USE_CQE_TX`` bool Tx CQE mode
> + ``ETHTOOL_A_COALESCE_USE_CQE_RX`` bool Rx CQE mode
> =========================================== ====== =======================
>
> Attributes are only included in reply if their value is not zero or the
> @@ -975,6 +977,8 @@ Request contents:
> ``ETHTOOL_A_COALESCE_TX_USECS_HIGH`` u32 delay (us), high Tx
> ``ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH`` u32 max packets, high Tx
> ``ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL`` u32 rate sampling interval
> + ``ETHTOOL_A_COALESCE_USE_CQE_TX`` bool Tx CQE mode
> + ``ETHTOOL_A_COALESCE_USE_CQE_RX`` bool Rx CQE mode
> =========================================== ====== =======================
>
> Request is rejected if it attributes declared as unsupported by driver (i.e.
You need to thoroughly document the semantics. Can you point us to
which drivers/devices implement similar modes of operation (if they
exist we need to make sure semantics match)?
> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
> index 1030540..9d0a386 100644
> --- a/include/linux/ethtool.h
> +++ b/include/linux/ethtool.h
> @@ -179,6 +179,8 @@ __ethtool_get_link_ksettings(struct net_device *dev,
>
> struct kernel_ethtool_coalesce {
> struct ethtool_coalesce base;
> + __u32 use_cqe_mode_tx;
> + __u32 use_cqe_mode_rx;
No __ in front, this is not a user space structure.
Why not bool or a bitfield?
> };
>
> /**
> @@ -216,6 +223,8 @@ const struct nla_policy ethnl_coalesce_set_policy[] = {
> [ETHTOOL_A_COALESCE_TX_USECS_HIGH] = { .type = NLA_U32 },
> [ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH] = { .type = NLA_U32 },
> [ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL] = { .type = NLA_U32 },
> + [ETHTOOL_A_COALESCE_USE_CQE_MODE_TX] = { .type = NLA_U8 },
> + [ETHTOOL_A_COALESCE_USE_CQE_MODE_RX] = { .type = NLA_U8 },
This needs a policy to make sure values are <= 1.
next prev parent reply other threads:[~2021-05-27 0:00 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-26 9:27 [RFC net-next 0/4] ethtool: extend coalesce uAPI Huazhong Tan
2021-05-26 9:27 ` [RFC net-next 1/4] ethtool: extend coalesce API Huazhong Tan
2021-05-26 23:56 ` Jakub Kicinski
2021-05-27 1:39 ` Huazhong Tan
2021-05-26 9:27 ` [RFC net-next 2/4] ethtool: extend coalesce setting uAPI with CQE mode Huazhong Tan
2021-05-27 0:00 ` Jakub Kicinski [this message]
2021-05-27 2:00 ` Huazhong Tan
2021-05-27 17:37 ` Jakub Kicinski
2021-05-26 9:27 ` [RFC net-next 3/4] net: hns3: add support for EQE/CQE mode configuration Huazhong Tan
2021-05-26 9:27 ` [RFC net-next 4/4] net: hns3: add ethtool support for CQE/EQE " Huazhong Tan
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=20210526170033.62c8e6eb@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com \
--to=kuba@kernel.org \
--cc=akiyano@amazon.com \
--cc=davem@davemloft.net \
--cc=dledford@redhat.com \
--cc=ecree.xilinx@gmail.com \
--cc=edwin.peer@broadcom.com \
--cc=grygorii.strashko@ti.com \
--cc=huangdaode@huawei.com \
--cc=ioana.ciornei@nxp.com \
--cc=irusskikh@marvell.com \
--cc=jacob.e.keller@intel.com \
--cc=jesse.brandeburg@intel.com \
--cc=jgg@ziepe.ca \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=merez@codeaurora.org \
--cc=michael.chan@broadcom.com \
--cc=netanel@amazon.com \
--cc=netdev@vger.kernel.org \
--cc=rohitm@chelsio.com \
--cc=saeedm@nvidia.com \
--cc=salil.mehta@huawei.com \
--cc=sbhatta@marvell.com \
--cc=sgoutham@marvell.com \
--cc=tanhuazhong@huawei.com \
--cc=thomas.lendacky@amd.com \
--cc=vladimir.oltean@nxp.com \
--cc=yisen.zhuang@huawei.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.