From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 0/3] New Thread Safe Hash Library
Date: Thu, 18 Sep 2014 11:34:28 +0100 [thread overview]
Message-ID: <1411036471-3822-1-git-send-email-pablo.de.lara.guarch@intel.com> (raw)
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
next reply other threads:[~2014-09-18 10:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-18 10:34 Pablo de Lara [this message]
2014-09-18 10:34 ` [dpdk-dev] [PATCH 1/3] eal: add const in prefetch functions Pablo de Lara
2014-09-18 10:34 ` [dpdk-dev] [PATCH 2/3] lib/librte_tshash: New Thread Safe Hash library for DPDK Pablo de Lara
2014-09-18 10:34 ` [dpdk-dev] [PATCH 3/3] app/test: Added unit tests for Thread Safe Hash library Pablo de Lara
2014-09-18 12:21 ` [dpdk-dev] [PATCH 0/3] New Thread Safe Hash Library Neil Horman
2014-09-18 15:31 ` De Lara Guarch, Pablo
2014-09-18 15:45 ` Thomas Monjalon
2014-09-18 16:09 ` Neil Horman
2014-09-18 22:30 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411036471-3822-1-git-send-email-pablo.de.lara.guarch@intel.com \
--to=pablo.de.lara.guarch@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).