[dpdk-dev,v1,0/3] Add read-write concurrency to rte_hash library

Message ID 1528455078-328182-1-git-send-email-yipeng1.wang@intel.com (mailing list archive)


Wang, Yipeng1 June 8, 2018, 10:51 a.m. UTC
  This patch set adds the read-write concurrency support in rte_hash.
A new flag value is added to indicate if read-write concurrency is needed
during creation time. Test cases are implemented to do functional and
performance tests.

The new concurrency model is based on rte_rwlock. When Intel TSX is
available and the users indicate to use it, the TM version of the
rte_rwlock will be called. Both multi-writer and read-write concurrency
are protected by the rte_rwlock instead of the x86 specific RTM
instructions, so the x86 specific header rte_cuckoo_hash_x86.h is removed
and the code is infused into the main .c file.

A new rte_hash_count API is proposed to count how many keys are inserted into
the hash table.

Yipeng Wang (3):
  hash: add read and write concurrency support
  test: add test case for read write concurrency
  hash: add new API function to query the key count

 lib/librte_hash/rte_cuckoo_hash.c     | 658 +++++++++++++++++++++-------------
 lib/librte_hash/rte_cuckoo_hash.h     |  16 +-
 lib/librte_hash/rte_cuckoo_hash_x86.h | 164 ---------
 lib/librte_hash/rte_hash.h            |  14 +
 lib/librte_hash/rte_hash_version.map  |   8 +
 test/test/Makefile                    |   1 +
 test/test/test_hash.c                 |  12 +
 test/test/test_hash_multiwriter.c     |   9 +
 test/test/test_hash_perf.c            |  36 +-
 test/test/test_hash_readwrite.c       | 649 +++++++++++++++++++++++++++++++++
 10 files changed, 1135 insertions(+), 432 deletions(-)
 delete mode 100644 lib/librte_hash/rte_cuckoo_hash_x86.h
 create mode 100644 test/test/test_hash_readwrite.c