[dpdk-dev] [PATCH v6 15/23] eventtimer: add buffering of timer expiry events

Carrillo, Erik G erik.g.carrillo at intel.com
Fri Jan 19 00:07:52 CET 2018


> -----Original Message-----
> From: Pavan Nikhilesh [mailto:pbhagavatula at caviumnetworks.com]
> Sent: Thursday, January 11, 2018 6:19 AM
> To: Carrillo, Erik G <erik.g.carrillo at intel.com>;
> jerin.jacob at caviumnetworks.com; nipun.gupta at nxp.com;
> hemant.agrawal at nxp.com
> Cc: dev at dpdk.org
> Subject: Re: [PATCH v6 15/23] eventtimer: add buffering of timer expiry
> events
> 
> On Wed, Jan 10, 2018 at 06:21:06PM -0600, Erik Gabriel Carrillo wrote:
> > Buffer timer expiry events generated while walking a "run list"
> > in rte_timer_manage, and burst enqueue them to an event device to the
> > extent possible.
> >
> 
> IMO in some cases this adds a lot of delay between expiries and events being
> published to event dev. For example, having long expiry interval (default 300
> seconds for mac expiry) the expired entries would remain in the buffer till 32
> other entries expire.
> 

The service function invokes rte_timer_manage to handle expired timers, and as it does so, the buffer will be flushed under two conditions:  the buffer is full of expired timer events, or the buffer is not full but there are no more expired timers to handle for this iteration of the service.  The latter condition will flush the buffer even if only one event has been buffered after walking the list of expired rte_timers.  

So, there could be some delay for the events that got buffered earliest, but it seems like the throughput benefit outweighs the small delay there.  Thoughts?

We could also make the buffer size configurable.  

> 
> > Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo at intel.com>
> > ---
> >  lib/librte_eventdev/rte_event_timer_adapter.c | 118
> > +++++++++++++++++++++++---
> >  1 file changed, 108 insertions(+), 10 deletions(-)
> >
> <snip>


More information about the dev mailing list