> -----Original Message----- > From: Dumitrescu, Cristian > Sent: Tuesday, May 9, 2017 7:49 PM > To: 'vuon...@viettel.com.vn' <vuon...@viettel.com.vn>; dev@dpdk.org > Subject: RE: [dpdk-dev] How to using add/lookup hash table in multithread > environment > > > > > -----Original Message----- > > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of > > vuon...@viettel.com.vn > > Sent: Friday, May 5, 2017 5:52 AM > > To: dev@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