Here's the latest version of the rte_hash multi-writer patch. It's re-based on top of the latest head as of Jun 16, 2016.
http://dpdk.org/dev/patchwork/patch/13886/ http://dpdk.org/dev/patchwork/patch/12589/ v3 changes: * Made spinlock as fall back behavior when developer choose to use multi-writer behavior while HTM is not available. * Created a rte_cuckoo_hash_x86.h file to hold all x86-specific related cuckoo_hash functions. And rte_cuckoo_hash.c uses compile time flag to select x86 file or other platform-specific implementations. While HTM check is still done at runtime (same with RTE_HASH_EXTRA_FLAGS_TRANS_MEM_SUPPORT) * Moved rte_hash private struct definitions to rte_cuckoo_hash.h, to allow rte_cuckoo_hash_x86.h or future platform dependent functions to include. * Following renaming for consistent names when new platform TM support are added. - rte_hash_cuckoo_insert_mw_tm for trying insertion without moving buckets around. - rte_hash_cuckoo_move_insert_mw_tm for trying insertion by moving buckets around. v2 changes: * Address issues pointed out by reviews on mailing list. * Removed the RTE_HASH_KEY_FLAG_MOVED flag used in v1, which would cause problem when key deletion happens. Wei Shen (1): rte_hash: add scalable multi-writer insertion w/ Intel TSX app/test/Makefile | 1 + app/test/test_hash_multiwriter.c | 287 +++++++++++++++++++++++++++++++++ doc/guides/rel_notes/release_16_07.rst | 12 ++ lib/librte_hash/rte_cuckoo_hash.c | 258 ++++++++++------------------- lib/librte_hash/rte_cuckoo_hash.h | 219 +++++++++++++++++++++++++ lib/librte_hash/rte_cuckoo_hash_x86.h | 193 ++++++++++++++++++++++ lib/librte_hash/rte_hash.h | 3 + 7 files changed, 796 insertions(+), 177 deletions(-) create mode 100644 app/test/test_hash_multiwriter.c create mode 100644 lib/librte_hash/rte_cuckoo_hash.h create mode 100644 lib/librte_hash/rte_cuckoo_hash_x86.h -- 2.5.5