> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula <pbhagavat...@marvell.com>
> Sent: Thursday, July 14, 2022 7:33 AM
> To: mattias.ronnblom <mattias.ronnb...@ericsson.com>; Thomas Monjalon
> <tho...@monjalon.net>
> Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Ray Kinsella 
> <m...@ashroe.eu>;
> dev@dpdk.org; McDaniel, Timothy <timothy.mcdan...@intel.com>; Hemant
> Agrawal <hemant.agra...@nxp.com>; sachin.sax...@oss.nxp.com;
> lian...@liangbit.com; Mccarthy, Peter <peter.mccar...@intel.com>; Van Haaren,
> Harry <harry.van.haa...@intel.com>; Carrillo, Erik G 
> <erik.g.carri...@intel.com>;
> Gujjar, Abhinandan S <abhinandan.guj...@intel.com>; Jayatheerthan, Jay
> <jay.jayatheert...@intel.com>; Burakov, Anatoly <anatoly.bura...@intel.com>
> Subject: RE: [EXT] Re: [PATCH 1/2] doc: add enqueue depth for new event type
> 
> 
> 
> > -----Original Message-----
> > From: Mattias Rönnblom <mattias.ronnb...@ericsson.com>
> > Sent: Wednesday, July 13, 2022 5:45 PM
> > To: Pavan Nikhilesh Bhagavatula <pbhagavat...@marvell.com>; Thomas
> > Monjalon <tho...@monjalon.net>
> > Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Ray Kinsella
> > <m...@ashroe.eu>; dev@dpdk.org; timothy.mcdan...@intel.com; Hemant
> > Agrawal <hemant.agra...@nxp.com>; sachin.sax...@oss.nxp.com;
> > lian...@liangbit.com; peter.mccar...@intel.com;
> > harry.van.haa...@intel.com; erik.g.carri...@intel.com;
> > abhinandan.guj...@intel.com; jay.jayatheert...@intel.com;
> > anatoly.bura...@intel.com
> > Subject: Re: [EXT] Re: [PATCH 1/2] doc: add enqueue depth for new event
> > type
> >
> > On 2022-07-13 12:40, Pavan Nikhilesh Bhagavatula wrote:
> > >
> > >
> > >> -----Original Message-----
> > >> From: Mattias Rönnblom <mattias.ronnb...@ericsson.com>
> > >> Sent: Wednesday, July 13, 2022 2:39 PM
> > >> To: Pavan Nikhilesh Bhagavatula <pbhagavat...@marvell.com>; Thomas
> > >> Monjalon <tho...@monjalon.net>
> > >> Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Ray Kinsella
> > >> <m...@ashroe.eu>; dev@dpdk.org; timothy.mcdan...@intel.com;
> > Hemant
> > >> Agrawal <hemant.agra...@nxp.com>; sachin.sax...@oss.nxp.com;
> > >> lian...@liangbit.com; peter.mccar...@intel.com;
> > >> harry.van.haa...@intel.com; erik.g.carri...@intel.com;
> > >> abhinandan.guj...@intel.com; jay.jayatheert...@intel.com;
> > >> anatoly.bura...@intel.com
> > >> Subject: Re: [EXT] Re: [PATCH 1/2] doc: add enqueue depth for new
> > event
> > >> type
> > >>
> > >> On 2022-07-12 20:11, Pavan Nikhilesh Bhagavatula wrote:
> > >>> +Cc
> > >>> timothy.mcdan...@intel.com;
> > >>> hemant.agra...@nxp.com;
> > >>> sachin.sax...@oss.nxp.com;
> > >>> mattias.ronnb...@ericsson.com;
> > >>> jer...@marvell.com;
> > >>> lian...@liangbit.com;
> > >>> peter.mccar...@intel.com;
> > >>> harry.van.haa...@intel.com;
> > >>> erik.g.carri...@intel.com;
> > >>> abhinandan.guj...@intel.com;
> > >>> jay.jayatheert...@intel.com;
> > >>> m...@ashroe.eu;
> > >>> anatoly.bura...@intel.com;
> > >>>
> > >>>
> > >>>> -----Original Message-----
> > >>>> From: Thomas Monjalon <tho...@monjalon.net>
> > >>>> Sent: Tuesday, July 12, 2022 8:31 PM
> > >>>> To: Pavan Nikhilesh Bhagavatula <pbhagavat...@marvell.com>
> > >>>> Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Ray Kinsella
> > >>>> <m...@ashroe.eu>; dev@dpdk.org; Pavan Nikhilesh Bhagavatula
> > >>>> <pbhagavat...@marvell.com>
> > >>>> Subject: [EXT] Re: [PATCH 1/2] doc: add enqueue depth for new event
> > >> type
> > >>>>
> > >>>> External Email
> > >>>>
> > >>>> ----------------------------------------------------------------------
> > >>>> I'm not your teacher, but please consider Cc'ing people outside of your
> > >>>> company.
> > >>>>
> > >>>
> > >>> I generally add --to-cmd=./devtools/get-maintainer.sh but looks like 
> > >>> it's
> > >> useless for
> > >>> sending deprecation notices.
> > >>>
> > >>> Maybe we should update it to include lib/driver maintainers when diff
> > sees
> > >> deprecation.rst
> > >>>
> > >>>>
> > >>>> 27/06/2022 11:57, pbhagavat...@marvell.com:
> > >>>>> From: Pavan Nikhilesh <pbhagavat...@marvell.com>
> > >>>>>
> > >>>>> A new field ``max_event_port_enqueue_new_burst`` will be added
> > to
> > >> the
> > >>>>> structure ``rte_event_dev_info``. The field defines the max enqueue
> > >>>>> burst size of new events (OP_NEW) supported by the underlying
> > event
> > >>>>> device.
> > >>>>>
> > >>>>> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>
> > >>>>> ---
> > >>>>>    doc/guides/rel_notes/deprecation.rst | 5 +++++
> > >>>>>    1 file changed, 5 insertions(+)
> > >>>>>
> > >>>>> diff --git a/doc/guides/rel_notes/deprecation.rst
> > >>>> b/doc/guides/rel_notes/deprecation.rst
> > >>>>> index 4e5b23c53d..071317e8e3 100644
> > >>>>> --- a/doc/guides/rel_notes/deprecation.rst
> > >>>>> +++ b/doc/guides/rel_notes/deprecation.rst
> > >>>>> @@ -125,3 +125,8 @@ Deprecation Notices
> > >>>>>      applications should be updated to use the ``dmadev`` library
> > instead,
> > >>>>>      with the underlying HW-functionality being provided by the 
> > >>>>> ``ioat``
> > or
> > >>>>>      ``idxd`` dma drivers
> > >>>>> +
> > >>>>> +* eventdev: The structure ``rte_event_dev_info`` will be extended
> > to
> > >>>> include the
> > >>>>> +  max enqueue burst size of new events supported by the
> > underlying
> > >>>> event device.
> > >>>>> +  A new field ``max_event_port_enqueue_new_burst`` will be
> > added
> > >> to
> > >>>> the structure
> > >>>>> +  ``rte_event_dev_info`` in DPDK 22.11.
> > >>>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>
> > >> Why is this needed, or useful? Why isn't called something with
> > >> "enqueue_depth" in it, like the already-present field?
> > >>
> > >
> > > This is for a case where enqueues with OP_FORWARD/OP_RELEASE only
> > supports
> > > enqueue depth of 1.
> >
> > I assume it's for other cases as well? Any case when the event device
> > has a max forward enqueue depth != max new enqueue depth?
> >
> 
> Yes, generally new events have much more flexibility than forwards event.
> 
> > I don't see why an event device would have such low max limit on the
> > number events enqueued.
> 
> It depends on the number of scheduling contexts a given event port can track.
> Anyway this would align to the current existing feature definitions. The 
> existing
> API only defines the enqueue size of fwd and release events i.e. scheduling 
> contexts
> already tracked by event device.
> NEW is always a special case as we are adding new scheduling contexts to the 
> event
> device, the idea of this patch is to specify that NEW events wouldn’t have 
> the same
> restrictions of fwd/release events.
> 
> This would also allow us to craft optimized APIs such as
> https://patches.dpdk.org/project/dpdk/patch/20220627095702.8047-2-
> pbhagavat...@marvell.com/

I've reviewed the above; I'm not in favour of adding even more APIs to the 
Eventdev level.
Adding even more enq APIs just overloads applications with options; today we 
already have
multiple APIs;
rte_event_enqueue_burst()
rte_event_enqueue_new_burst()
rte_event_enqueue_forward_burst()

Now the suggestion is to add another one,
rte_event_enqueue_new_queue_burst()?

For an Ethdev analogy: we have rx_burst() and tx_burst(). There is no 
tx_to_same_dest_ip_burst().

The driver already has all knowledge required if "all events going to same 
destination",
so it can optimize for that case already internally. I think Mattias was asking 
similar questions,
around PMD having enough info today already.

Pushing more APIs and complexity to Application level doesn't seem a good 
direction to me.


> >If the underlying hardware has some limitations,
> > why not let the driver loop until back pressure occurs? Then you can
> > amortize the function call overhead and potentially other software
> > operations (credit system management etc) over multiple events. Plus,
> > the application doesn't need a special case for new events versus
> > forward type events, or this-versus-that event device.
> >
> > > Where as OP_NEW supports higher burst size.
> > >
> > > This is already tied into capability description :
> > >
> > > #define RTE_EVENT_DEV_CAP_BURST_MODE          (1ULL << 4)
> > > /**< Event device is capable of operating in burst mode for
> > enqueue(forward,
> > >   * release) and dequeue operation. If this capability is not set, 
> > > application
> > >   * still uses the rte_event_dequeue_burst() and
> > rte_event_enqueue_burst() but
> > >   * PMD accepts only one event at a time.
> > >   *
> > >   * @see rte_event_dequeue_burst() rte_event_enqueue_burst()
> > >   */
> > >
> > >> I think I would rather remove all fields related to the max
> > >> enqueue/dequeue burst sizes. They serve no purpose, as far as I see. If
> > >> you have some HW limit on the maximum number of new events it can
> > >> accept, have the driver retry until backpressure occurs.
> > >

Reply via email to