DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jerin Jacob <jerinjacobk@gmail.com>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: Konstantin Ananyev <konstantin.ananyev@huawei.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	 "Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>,
	jerinj@marvell.com, dev@dpdk.org,
	Ferruh Yigit <ferruh.yigit@amd.com>,
	Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
	 ferruh.yigit@xilinx.com, ajit.khaparde@broadcom.com,
	aboyer@pensando.io,  "Xing, Beilei" <beilei.xing@intel.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	chas3@att.com,  chenbo.xia@intel.com, "Loftus,
	Ciara" <ciara.loftus@intel.com>,
	dsinghrawat@marvell.com,  "Czeck, Ed" <ed.czeck@atomicrules.com>,
	evgenys@amazon.com, grive@u256.net,  g.singh@nxp.com, "Wang,
	Haiyue" <haiyue.wang@intel.com>,
	hkalra@marvell.com,  heinrich.kuhn@corigine.com,
	hemant.agrawal@nxp.com, hyonkim@cisco.com,  igorch@amazon.com,
	irusskikh@marvell.com, jgrajcia@cisco.com,  "Singh,
	Jasvinder" <jasvinder.singh@intel.com>,
	jianwang@trustnetic.com,  jiawenwu@trustnetic.com, "Wu,
	Jingjing" <jingjing.wu@intel.com>,
	johndale@cisco.com, john.miller@atomicrules.com,
	linville@tuxdriver.com,  "Wiles, Keith" <keith.wiles@intel.com>,
	kirankumark@marvell.com, lironh@marvell.com,
	 longli@microsoft.com, mw@semihalf.com, spinler@cesnet.cz,
	matan@nvidia.com,  "Peters, Matt" <matt.peters@windriver.com>,
	maxime.coquelin@redhat.com, mk@semihalf.com,
	 "humin (Q)" <humin29@huawei.com>,
	pnalla@marvell.com, ndabilpuram@marvell.com,  "Yang,
	Qiming" <qiming.yang@intel.com>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>,
	radhac@marvell.com, rahul.lakkireddy@chelsio.com,
	rmody@marvell.com,  "Xu, Rosen" <rosen.xu@intel.com>,
	sachin.saxena@oss.nxp.com, skoteshwar@marvell.com,
	shshaikh@marvell.com, shaibran@amazon.com,  "Siegel,
	Shepard" <shepard.siegel@atomicrules.com>,
	asomalap@amd.com,  somnath.kotur@broadcom.com,
	sthemmin@microsoft.com,  "Webster,
	Steven" <steven.webster@windriver.com>,
	skori@marvell.com, mtetsuyah@gmail.com, vburru@marvell.com,
	viacheslavo@nvidia.com,  "Wang, Xiao W" <xiao.w.wang@intel.com>,
	 "Wangxiaoyun (Cloud)" <cloud.wangxiaoyun@huawei.com>,
	 "Zhuangyuzeng (Yisen)" <yisen.zhuang@huawei.com>,
	"Wang, Yong" <yongwang@vmware.com>,
	 "Xuanziyang (William)" <william.xuanziyang@huawei.com>
Subject: Re: [dpdk-dev] [RFC] ethdev: support Tx queue free descriptor query
Date: Tue, 9 Jan 2024 20:15:29 +0530	[thread overview]
Message-ID: <CALBAE1PtPmgAuvUn5n3SOCLUt+Jp8ynUMSBvco7+rWo2r6nbww@mail.gmail.com> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35E9F11D@smartserver.smartshare.dk>

On Tue, Jan 9, 2024 at 2:24 AM Morten Brørup <mb@smartsharesystems.com> wrote:
>
> > From: Konstantin Ananyev [mailto:konstantin.ananyev@huawei.com]
> > Sent: Friday, 5 January 2024 12.13
> >
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > Sent: Friday, January 5, 2024 10:04 AM
> > >
> > > 05/01/2024 10:57, Jerin Jacob:
> > > > On Thu, Jan 4, 2024 at 11:59 PM Thomas Monjalon
> > <thomas@monjalon.net> wrote:
> > > > >
> > > > > 04/01/2024 15:21, Konstantin Ananyev:
> > > > > >
> > > > > > > > > Introduce a new API to retrieve the number of available
> > free descriptors
> > > > > > > > > in a Tx queue. Applications can leverage this API in the
> > fast path to
> > > > > > > > > inspect the Tx queue occupancy and take appropriate
> > actions based on the
> > > > > > > > > available free descriptors.
> > > > > > > > >
> > > > > > > > > A notable use case could be implementing Random Early
> > Discard (RED)
> > > > > > > > > in software based on Tx queue occupancy.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Jerin Jacob <jerinj@marvell.com>
> > > > > > > >
> > > > > > > > I think having an API to get the number of free descriptors
> > per queue is a good idea. Why have it only for TX queues and not
> > > for RX
> > > > > > > queues as well?
> > > > > > >
> > > > > > > I see no harm in adding for Rx as well. I think, it is better
> > to have
> > > > > > > separate API for each instead of adding argument as it is
> > fast path
> > > > > > > API.
> > > > > > > If so, we could add a new API when there is any PMD
> > implementation or
> > > > > > > need for this.
> > > > > >
> > > > > > I think for RX we already have similar one:
> > > > > > /** @internal Get number of used descriptors on a receive
> > queue. */
> > > > > > typedef uint32_t (*eth_rx_queue_count_t)(void *rxq);
> > > > >
> > > > > rte_eth_rx_queue_count() gives the number of Rx used descriptors
> > > > > rte_eth_rx_descriptor_status() gives the status of one Rx
> > descriptor
> > > > > rte_eth_tx_descriptor_status() gives the status of one Tx
> > descriptor
> > > > >
> > > > > This patch is adding a function to get Tx available descriptors,
> > > > > rte_eth_tx_queue_free_desc_get().
> > > > > I can see a symmetry with rte_eth_rx_queue_count().
> > > > > For consistency I would rename it to
> > rte_eth_tx_queue_free_count().
>
> For consistency with rte_eth_rx_queue_count() regarding both naming and behavior of the API, I would prefer:
>
> rte_eth_tx_queue_count(), returning the number of used descriptors.

Ack. I will change to "used" version.

>
> > > > >
> > > > > Should we add rte_eth_tx_queue_count() and
> > rte_eth_rx_queue_free_count()?
> > > >
> > > > IMO, rte_eth_rx_queue_free_count() is enough as
> > > > used count =  total desc number(configured via nb_tx_desc with
> > > > rte_eth_tx_queue_setup())  - free count
> > >
> > > I'm fine with that.
> > >
> >
> > Yep, agree.
> > If we ever need  rte_eth_rx_queue_free_count() and
> > rte_eth_tx_queue_used_count(),
> > it could be done via slow-path as Jerin outlined above, no need to
> > waste entries in fp_ops
> > for that.
>
> Yes, rte_eth_rx/tx_queue_avail_count() could be added in the ethdev library, without driver callbacks, but simply getting data from configured descriptor ring sizes and rte_eth_rx/tx_queue_count().
>
> PS: For naming conventions, I sought inspiration from the mempool library. Also, I don't see any need to use "descs" as part of the names of the proposed functions.
>
> The driver callback can be either "free count" or "used count", whichever is easier for the drivers to implement, or (preferably) whichever is likelier to be faster to execute in the most common case. I would assume that the TX descriptor "used count" is relatively low most of the time.

I will change driver callback to "used count" to have better synergy
with public ethdev API.


>

  reply	other threads:[~2024-01-09 14:45 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-19 17:29 jerinj
2024-01-04 13:16 ` Dumitrescu, Cristian
2024-01-04 13:35   ` Jerin Jacob
2024-01-04 14:21     ` Konstantin Ananyev
2024-01-04 18:29       ` Thomas Monjalon
2024-01-05  9:57         ` Jerin Jacob
2024-01-05 10:03           ` Thomas Monjalon
2024-01-05 11:12             ` Konstantin Ananyev
2024-01-08 20:54               ` Morten Brørup
2024-01-09 14:45                 ` Jerin Jacob [this message]
2024-01-04 21:17 ` Thomas Monjalon
2024-01-05  9:54   ` Jerin Jacob
2024-01-05 10:02     ` Thomas Monjalon
2024-01-08 10:54 ` Bruce Richardson
2024-01-08 21:15   ` Morten Brørup
2024-01-09  8:47     ` Bruce Richardson
2024-01-12 10:56     ` Ferruh Yigit
2024-01-11 15:17 ` [dpdk-dev] [v1] ethdev: support Tx queue used count jerinj
2024-01-11 16:17   ` Andrew Rybchenko
2024-01-12  6:56     ` Jerin Jacob
2024-01-11 16:20   ` Morten Brørup
2024-01-12  6:59     ` Jerin Jacob
2024-01-11 17:00   ` Stephen Hemminger
2024-01-12  7:01     ` Jerin Jacob
2024-01-12 16:30       ` Stephen Hemminger
2024-01-12  8:02   ` David Marchand
2024-01-12  9:29     ` Jerin Jacob
2024-01-12 11:34   ` Ferruh Yigit
2024-01-12 12:11     ` David Marchand
2024-01-12 14:25       ` Ferruh Yigit
2024-01-12 12:29     ` Morten Brørup
2024-01-12 14:29       ` Ferruh Yigit
2024-01-18  9:06     ` Jerin Jacob
2024-01-12 12:33   ` Konstantin Ananyev
2024-01-16  6:37     ` Jerin Jacob
2024-01-18 10:17       ` Konstantin Ananyev
2024-01-18 11:21         ` Jerin Jacob
2024-01-18 13:36         ` Morten Brørup
2024-01-19  9:52           ` Konstantin Ananyev
2024-01-19 10:32             ` Morten Brørup
2024-01-12 16:52   ` Stephen Hemminger
2024-01-18  9:47   ` [dpdk-dev] [v2] " jerinj
2024-01-22 13:00     ` Konstantin Ananyev
2024-01-23 11:46       ` Ferruh Yigit
2024-02-07 20:30         ` Ferruh Yigit
2024-01-29 15:03     ` Ferruh Yigit

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=CALBAE1PtPmgAuvUn5n3SOCLUt+Jp8ynUMSBvco7+rWo2r6nbww@mail.gmail.com \
    --to=jerinjacobk@gmail.com \
    --cc=aboyer@pensando.io \
    --cc=ajit.khaparde@broadcom.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=asomalap@amd.com \
    --cc=beilei.xing@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=chas3@att.com \
    --cc=chenbo.xia@intel.com \
    --cc=ciara.loftus@intel.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=dsinghrawat@marvell.com \
    --cc=ed.czeck@atomicrules.com \
    --cc=evgenys@amazon.com \
    --cc=ferruh.yigit@amd.com \
    --cc=ferruh.yigit@xilinx.com \
    --cc=g.singh@nxp.com \
    --cc=grive@u256.net \
    --cc=haiyue.wang@intel.com \
    --cc=heinrich.kuhn@corigine.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=hkalra@marvell.com \
    --cc=humin29@huawei.com \
    --cc=hyonkim@cisco.com \
    --cc=igorch@amazon.com \
    --cc=irusskikh@marvell.com \
    --cc=jasvinder.singh@intel.com \
    --cc=jerinj@marvell.com \
    --cc=jgrajcia@cisco.com \
    --cc=jianwang@trustnetic.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=jingjing.wu@intel.com \
    --cc=john.miller@atomicrules.com \
    --cc=johndale@cisco.com \
    --cc=keith.wiles@intel.com \
    --cc=kirankumark@marvell.com \
    --cc=konstantin.ananyev@huawei.com \
    --cc=linville@tuxdriver.com \
    --cc=lironh@marvell.com \
    --cc=longli@microsoft.com \
    --cc=matan@nvidia.com \
    --cc=matt.peters@windriver.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=mb@smartsharesystems.com \
    --cc=mk@semihalf.com \
    --cc=mtetsuyah@gmail.com \
    --cc=mw@semihalf.com \
    --cc=ndabilpuram@marvell.com \
    --cc=pnalla@marvell.com \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=radhac@marvell.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rmody@marvell.com \
    --cc=rosen.xu@intel.com \
    --cc=sachin.saxena@oss.nxp.com \
    --cc=shaibran@amazon.com \
    --cc=shepard.siegel@atomicrules.com \
    --cc=shshaikh@marvell.com \
    --cc=skori@marvell.com \
    --cc=skoteshwar@marvell.com \
    --cc=somnath.kotur@broadcom.com \
    --cc=spinler@cesnet.cz \
    --cc=steven.webster@windriver.com \
    --cc=sthemmin@microsoft.com \
    --cc=thomas@monjalon.net \
    --cc=vburru@marvell.com \
    --cc=viacheslavo@nvidia.com \
    --cc=william.xuanziyang@huawei.com \
    --cc=xiao.w.wang@intel.com \
    --cc=yisen.zhuang@huawei.com \
    --cc=yongwang@vmware.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).