dev.dpdk.org archive mirror
 help / color / mirror / Atom feed
From: "Jayatheerthan, Jay" <jay.jayatheerthan@intel.com>
To: Jerin Jacob <jerinjacobk@gmail.com>,
	"Naga Harish K, S V" <s.v.naga.harish.k@intel.com>
Cc: "jerinj@marvell.com" <jerinj@marvell.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH 1/3] eventdev/eth_tx: add queue start stop API
Date: Fri, 16 Sep 2022 06:10:17 +0000	[thread overview]
Message-ID: <DM6PR11MB43482D812099FA93AD01DF85FD489@DM6PR11MB4348.namprd11.prod.outlook.com> (raw)
In-Reply-To: <CALBAE1Om1piUs__Xtxzv8dyAOwq8ijNyKT2cYVh-KQqjFNyCPw@mail.gmail.com>

> -----Original Message-----
> From: Jerin Jacob <jerinjacobk@gmail.com>
> Sent: Wednesday, September 14, 2022 8:51 PM
> To: Naga Harish K, S V <s.v.naga.harish.k@intel.com>
> Cc: Jayatheerthan, Jay <jay.jayatheerthan@intel.com>; jerinj@marvell.com; dev@dpdk.org
> Subject: Re: [PATCH 1/3] eventdev/eth_tx: add queue start stop API
> 
> On Fri, Sep 9, 2022 at 9:12 AM Naga Harish K S V
> <s.v.naga.harish.k@intel.com> wrote:
> >
> > This patch adds support to start or stop a particular queue
> > that is associated with the adapter.
> >
> > Start function enables the Tx Adapter to start enqueueing
> > packets to the Tx queue.
> >
> > Stop function stops the Tx Adapter from transmitting any
> > mbufs to the Tx queue. The Tx Adapter also frees any mbufs
> > that it may have buffered for this queue. All inflight packets
> > destined to the queue are freed until the queue is started again.
> >
> > Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com>
> 
> In general, new APIs look good to me if it is helping the SW driver.
> I will wait for comment from @Jayatheerthan, Jay

Yes @jerin, these APIs help avoid some unexpected behavior with application stopping ethdev Tx queues and Tx adapter being unaware of it. With these APIs, the application can call stop API to notify Tx adapter that corresponding ethdev Tx queue is stopped and any in-flight packets are freed by Tx adapter dataplane code. Tx adapter stop API is called before stopping the ethdev Tx queue. When ethdev Tx queue is enabled, application can notify Tx adapter to resume processing of the packets for that queue by calling the start API. The ethdev Tx queue is started before calling Tx adapter start API.

Perhaps, some of this usecase description can go into event_ethernet_tx_adapter.rst and doxygen comments for the APIs. @Harish, could you add please ?

> 
> Some comments below
> 
> > ---
> >  lib/eventdev/eventdev_pmd.h             |  41 +++++++++
> >  lib/eventdev/rte_event_eth_tx_adapter.c | 114 +++++++++++++++++++++++-
> >  lib/eventdev/rte_event_eth_tx_adapter.h |  39 ++++++++
> >  lib/eventdev/version.map                |   2 +
> 
> Please squash 3/3 to 1/3.
> 
> Please update doc/guides/prog_guide/event_ethernet_tx_adapter.rst for
> new APIs doc for
> What is this API and when to use this API etc.
> 
> 
> >  4 files changed, 192 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/eventdev/eventdev_pmd.h b/lib/eventdev/eventdev_pmd.h
> > index f514a37575..a27c0883c6 100644
> > --- a/lib/eventdev/eventdev_pmd.h
> > +++ b/lib/eventdev/eventdev_pmd.h
> > @@ -1294,6 +1294,43 @@ typedef int (*eventdev_eth_tx_adapter_stats_reset_t)(uint8_t id,
> >  typedef int (*eventdev_eth_tx_adapter_instance_get_t)
> >         (uint16_t eth_dev_id, uint16_t tx_queue_id, uint8_t *txa_inst_id);
> >
> > +/**
> > + * Start a Tx queue that is assigned to TX adapter instance
> 
> Tx adapter
> 
> > + *
> > + * @param id
> > + *  Adapter identifier
> > + *
> > + * @param eth_dev_id
> > + *  Port identifier of Ethernet device
> > + *
> > + * @param tx_queue_id
> > + *  Ethernet device TX queue index
> 
> Tx
> 
> > + *
> > + * @return
> > + *  -  0: Success
> > + *  - <0: Error code on failure
> > + */
> > +typedef int (*eventdev_eth_tx_adapter_queue_start)
> > +       (uint8_t id, uint16_t eth_dev_id, uint16_t tx_queue_id);
> > +
> > +/**
> > + * Stop a Tx queue that is assigned to TX adapter instance
> 
> Tx
> 
> > +int
> > +rte_event_eth_tx_adapter_queue_start(uint16_t eth_dev_id, uint16_t tx_queue_id)
> > +{
> > +       return txa_queue_state_set(eth_dev_id, tx_queue_id, true);
> 
> Make it is NOP with return 0 if eventdev_eth_tx_adapter_queue_start is NULL
> 
> > +}
> > +
> > +int
> > +rte_event_eth_tx_adapter_queue_stop(uint16_t eth_dev_id, uint16_t tx_queue_id)
> > +{
> > +       return txa_queue_state_set(eth_dev_id, tx_queue_id, false);
> 
> Make it is NOP with return 0 if eventdev_eth_tx_adapter_queue_start is NULL
> 
> > +}

  parent reply	other threads:[~2022-09-16  6:10 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-09  3:42 [PATCH 1/3] eventdev/eth_tx: add queue start stop API Naga Harish K S V
2022-09-09  3:42 ` [PATCH 2/3] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-09  3:42 ` [PATCH 3/3] doc: added eth Tx adapter " Naga Harish K S V
2022-09-14 15:20 ` [PATCH 1/3] eventdev/eth_tx: add queue start stop API Jerin Jacob
2022-09-16  5:21   ` Naga Harish K, S V
2022-09-16  6:10   ` Jayatheerthan, Jay [this message]
2022-09-16 15:18     ` Naga Harish K, S V
2022-09-15  9:53 ` [PATCH v2 1/2] " Naga Harish K S V
2022-09-15  9:53   ` [PATCH v2 2/2] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-15 15:19   ` [PATCH v3 1/2] eventdev/eth_tx: add queue start stop API Naga Harish K S V
2022-09-15 15:19     ` [PATCH v3 2/2] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-16 15:15     ` [PATCH v4 1/2] eventdev/eth_tx: add queue start stop API Naga Harish K S V
2022-09-16 15:15       ` [PATCH v4 2/2] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-16 16:23     ` [PATCH v5 1/2] eventdev/eth_tx: add queue start stop API Naga Harish K S V
2022-09-16 16:23       ` [PATCH v5 2/2] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-26  2:04       ` [PATCH v6 1/2] eventdev/eth_tx: add queue start stop API Naga Harish K S V
2022-09-26  2:04         ` [PATCH v6 2/2] test/eth_tx: add testcase for queue start stop APIs Naga Harish K S V
2022-09-27 10:15         ` [PATCH v6 1/2] eventdev/eth_tx: add queue start stop API Jerin Jacob
2022-09-27 10:28           ` Jayatheerthan, Jay
2022-09-28  3:46             ` Jerin Jacob
  -- strict thread matches above, loose matches on Subject: below --
2022-09-08 17:12 [PATCH 1/3] " Naga Harish K S V

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=DM6PR11MB43482D812099FA93AD01DF85FD489@DM6PR11MB4348.namprd11.prod.outlook.com \
    --to=jay.jayatheerthan@intel.com \
    --cc=dev@dpdk.org \
    --cc=jerinj@marvell.com \
    --cc=jerinjacobk@gmail.com \
    --cc=s.v.naga.harish.k@intel.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).