On Thu, Jan 26, 2017 at 08:39:57PM +0000, Eads, Gage wrote: > > > > -----Original Message----- > > From: Jerin Jacob [mailto:jerin.ja...@caviumnetworks.com] > > Sent: Thursday, January 26, 2017 3:39 AM > > To: Eads, Gage <gage.e...@intel.com> > > Cc: Richardson, Bruce <bruce.richard...@intel.com>; 'dev@dpdk.org' > > <dev@dpdk.org>; 'thomas.monja...@6wind.com' > > <thomas.monja...@6wind.com>; 'hemant.agra...@nxp.com' > > <hemant.agra...@nxp.com>; Van Haaren, Harry > > <harry.van.haa...@intel.com>; McDaniel, Timothy > > <timothy.mcdan...@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. > .... > }