From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP; 16 Jun 2016 15:14:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.26,481,1459839600"; d="scan'208";a="720324965" Received: from hsw-node2.jf.intel.com ([10.23.157.82]) by FMSMGA003.fm.intel.com with ESMTP; 16 Jun 2016 15:14:47 -0700 From: Wei Shen To: dev@dpdk.org 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 Date: Thu, 16 Jun 2016 15:14:13 -0700 Message-Id: <1466115254-114498-1-git-send-email-wei1.shen@intel.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1466052753-69632-1-git-send-email-wei1.shen@intel.com> References: <1466052753-69632-1-git-send-email-wei1.shen@intel.com> Subject: [dpdk-dev] [PATCH v3] rte_hash: add scalable multi-writer insertion w/ Intel TSX X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jun 2016 22:14:48 -0000 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