[dpdk-dev] How to using add/lookup hash table in multithread environment

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Tue May 9 18:49:11 CEST 2017



> -----Original Message-----
> From: Dumitrescu, Cristian
> Sent: Tuesday, May 9, 2017 7:49 PM
> To: 'vuonglv at viettel.com.vn' <vuonglv at viettel.com.vn>; dev at dpdk.org
> Subject: RE: [dpdk-dev] How to using add/lookup hash table in multithread
> environment
> 
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of
> > vuonglv at viettel.com.vn
> > Sent: Friday, May 5, 2017 5:52 AM
> > To: dev at dpdk.org
> > Subject: [dpdk-dev] How to using add/lookup hash table in multithread
> > environment
> >
> > Hi DPDK team,
> > I am using DPDK to build a program in multithread environment.
> > I use 1 thread (on 1 core) to add and delete hash table key ( by
> > rte_hash_add_key() and rte_hash_del_key() function); And use 8 thread
> > (on 8 others core) to lookup (by rte_hash_lookup() function ).
> > As I know, rte_hash_lookup() function is /multi-thread safe,/ and
> > te_hash_add_key() and rte_hash_del_key() function is not /multi-thread
> > safe/.
> > So: Do I need using /lock/ when I add or delete key by 1 thread while 8
> > others thread is looking-up?
> >
> >
> 
> You could use a single thread to do the table add/del (table manager thread);
> when other threads need to do add/del, have them send a request to the
> table manager.
> 

This doc section might give you more ideas:
http://www.dpdk.org/doc/guides/prog_guide/packet_framework.html#shared-data-structures

> > Many thanks,
> > Vuong Le


More information about the dev mailing list