From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Shen Subject: [PATCH v3] rte_hash: add scalable multi-writer insertion w/ Intel TSX Date: Thu, 16 Jun 2016 15:14:13 -0700 Message-ID: <1466115254-114498-1-git-send-email-wei1.shen@intel.com> References: <1466052753-69632-1-git-send-email-wei1.shen@intel.com> Cc: pablo.de.lara.guarch@intel.com, konstantin.ananyev@intel.com, stephen@networkplumber.org, charlie.tai@intel.com, christian.maciocco@intel.com, sameh.gobriel@intel.com, wei1.shen@intel.com To: dev@dpdk.org Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 0387ECBCE for ; Fri, 17 Jun 2016 00:14:47 +0200 (CEST) In-Reply-To: <1466052753-69632-1-git-send-email-wei1.shen@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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