[dpdk-dev] [PATCH 0/3] New Thread Safe Hash Library
Pablo de Lara
pablo.de.lara.guarch at intel.com
Thu Sep 18 12:34:28 CEST 2014
This is an alternative hash implementation to the existing hash library.
This patch set provides a thread safe hash implementation, it allows users
to use multiple readers/writers working on a same hash table.
Main differences between the previous and the new implementation are:
- Multiple readers/writers can work on the same hash table,
whereas in the previous implementation writers could not work
on the table at the same time readers do.
- Previous implementation returned an index to a table after a lookup.
This implementation returns 8-byte integers or pointers to external data.
- Maximum entries to be looked up in bursts is 64, instead of 16.
- Maximum key length has being increased to 128, instead of a maximum of 64.
Basic implementation:
- A sparse table containing buckets (64-byte long) with hashes,
most of which are empty, and indexes to the second table.
- A compact table containing keys for final matching,
plus data associated to them.
Pablo de Lara (3):
eal: add const in prefetch functions
lib/librte_tshash: New Thread Safe Hash library for DPDK
app/test: Added unit tests for Thread Safe Hash library
app/test/Makefile | 4 +
app/test/test_tshash_func.c | 1117 ++++++++++++++++++++++++
app/test/test_tshash_multi_thread.c | 351 ++++++++
app/test/test_tshash_perf.c | 631 +++++++++++++
config/common_bsdapp | 6 +
config/common_linuxapp | 6 +
lib/Makefile | 1 +
lib/librte_eal/common/include/rte_log.h | 1 +
lib/librte_eal/common/include/rte_prefetch.h | 12 +-
lib/librte_eal/common/include/rte_tailq_elem.h | 2 +
lib/librte_tshash/Makefile | 49 +
lib/librte_tshash/rte_tshash.c | 580 ++++++++++++
lib/librte_tshash/rte_tshash.h | 533 +++++++++++
lib/librte_tshash/rte_vector_jhash.h | 332 +++++++
mk/rte.app.mk | 4 +
15 files changed, 3623 insertions(+), 6 deletions(-)
create mode 100644 app/test/test_tshash_func.c
create mode 100644 app/test/test_tshash_multi_thread.c
create mode 100644 app/test/test_tshash_perf.c
create mode 100644 lib/librte_tshash/Makefile
create mode 100644 lib/librte_tshash/rte_tshash.c
create mode 100644 lib/librte_tshash/rte_tshash.h
create mode 100644 lib/librte_tshash/rte_vector_jhash.h
--
1.7.7.6
More information about the dev
mailing list