[dpdk-users] Is Elastic Flow Distributor thread-safe?

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Tue Feb 14 15:38:23 CET 2017



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Tuesday, February 14, 2017 2:27 PM
> To: De Lara Guarch, Pablo
> Cc: users at dpdk.org; Rob Zimmerman
> Subject: Re: [dpdk-users] Is Elastic Flow Distributor thread-safe?
> 
> 2017-02-14 14:14, De Lara Guarch, Pablo:
> > From: Rob
> > >   Playing around with EFD and seeing some really bizarre behavior in a
> > > multi-core environment. Is it safe for multiple logical cores to be making
> > > EFD table updates while another logical core is performing lookups?
> Side
> > > note: the core which is making lookups is where the offline table
> resides.
> > >
> > > Intuition tells me this is probably not safe, but the docs make no
> mention
> > > of thread safety.
> >
> > The library is not thread-safe. The only operation that is thread safe is the
> lookup.
> >
> > However, although update is not thread safe, it is interesting to know the
> following.
> > Updating the EFD table consists of two steps:
> >
> > 1 - Compute Update: the new key is added to the offline group, which is
> not thread safe.
> >      Then, a new perfect hash for the group is computed (thread safe and
> where most of time is spent).
> >
> > 2 - Apply Update: Once the update is computed, it has to be applied to
> the online table (fast, but not thread safe).
> >
> > Multi-writer support might be added in the future, as it was added in the
> Hash library.
> >
> > For now, several readers can work simultaneously, as long as there is no
> writer working on it (you would need locks for this),
> > and only a single writer is supported if there is no other core doing
> lookups.
> 
> Should it be added to the documentation?

I will send a doc patch shortly about this.


More information about the users mailing list