[dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven programming model

Jerin Jacob jerin.jacob at caviumnetworks.com
Mon Jan 30 11:42:25 CET 2017


On Thu, Jan 26, 2017 at 08:39:57PM +0000, Eads, Gage wrote:
> 
> 
> >  -----Original Message-----
> >  From: Jerin Jacob [mailto:jerin.jacob at caviumnetworks.com]
> >  Sent: Thursday, January 26, 2017 3:39 AM
> >  To: Eads, Gage <gage.eads at intel.com>
> >  Cc: Richardson, Bruce <bruce.richardson at intel.com>; 'dev at dpdk.org'
> >  <dev at dpdk.org>; 'thomas.monjalon at 6wind.com'
> >  <thomas.monjalon at 6wind.com>; 'hemant.agrawal at nxp.com'
> >  <hemant.agrawal at nxp.com>; Van Haaren, Harry
> >  <harry.van.haaren at intel.com>; McDaniel, Timothy
> >  <timothy.mcdaniel at intel.com>
> >  Subject: Re: [dpdk-dev] [PATCH v4 1/6] eventdev: introduce event driven
> >  programming model
> >  
> >  Considering different implementation has different behaviors, How about
> >  enumerating the overflow policy at the port configuration time? and let
> >  implementation act accordingly to avoid fast-patch change in
> >  application(effects in all implementation irrespective of the capability)
> >  
> >  possible enumerating value at the port configuration time,
> >  - PANIC or similar scheme to denote it cannot proceed
> >  - TAIL DROP
> >  or any expected application behavior you want to add
> 
> I wonder if that's necessary? Hardware behavior a) means the function will always return nb_events. If hardware drops the event(s), I assume enqueue_burst would still return nb_events and the app behaves as if all events were sent. If the enqueue fails (ret < nb_events), app software could check rte_errno and take the action it deems necessary. So all fast-path enqueue code could look like:
> 
> ret = rte_event_enqueue_burst(..., nb_events);
> if (ret < nb_events) {

I was concerned about this section of the application code get bloated with
drivers specific actions. But, If we want the actions based on per event then
I think, it makes sense to update the specification with new rte_errno values
for enqueue.

>     ....
> }


More information about the dev mailing list