> -----Original Message----- > From: Jerin Jacob <jerinjac...@gmail.com> > Sent: Wednesday, September 14, 2022 8:51 PM > To: Naga Harish K, S V <s.v.naga.haris...@intel.com> > Cc: Jayatheerthan, Jay <jay.jayatheert...@intel.com>; jer...@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.haris...@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.haris...@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 > > Some comments below >
Posted V3 version with all comments addressed > > --- > > 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 > > > +}