All of lore.kernel.org
 help / color / mirror / Atom feed
From: Huazhong Tan <tanhuazhong@huawei.com>
To: Jakub Kicinski <kuba@kernel.org>
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: Thu, 27 May 2021 10:00:44 +0800	[thread overview]
Message-ID: <b29f05f8-3c57-ec6a-78bb-3a22f743f7f1@huawei.com> (raw)
In-Reply-To: <20210526170033.62c8e6eb@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>


On 2021/5/27 8:00, Jakub Kicinski wrote:
> 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)?


Ok, will complement the semantics.


Currently, only mlx5 provides a interface to update
this mode through ethtool priv-flag. other drivers like
broadcom and ice just use a fixed EQE and do not have
update interface.



>> 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?


bool is enough, __u32 is used here to be consistent with

fields in struct ethtool_coalesce.

This seems unnecessary?


>>   };
>>   
>>   /**
>> @@ -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.
>
> .


  reply	other threads:[~2021-05-27  2: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
2021-05-27  2:00     ` Huazhong Tan [this message]
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=b29f05f8-3c57-ec6a-78bb-3a22f743f7f1@huawei.com \
    --to=tanhuazhong@huawei.com \
    --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=kuba@kernel.org \
    --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=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.