From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6EDF1A04DD; Thu, 22 Oct 2020 00:50:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AEF0D9B02; Thu, 22 Oct 2020 00:50:44 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id E79459AFE for ; Thu, 22 Oct 2020 00:50:43 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 2C98731B; Wed, 21 Oct 2020 15:50:42 -0700 (PDT) Received: from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com [10.118.12.95]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 2658E3F66B; Wed, 21 Oct 2020 15:50:42 -0700 (PDT) From: Dharmik Thakkar To: Cc: dev@dpdk.org, nd@arm.com, Dharmik Thakkar Date: Wed, 21 Oct 2020 17:50:02 -0500 Message-Id: <20201021225006.10438-1-dharmik.thakkar@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201020161301.7458-1-dharmik.thakkar@arm.com> References: <20201020161301.7458-1-dharmik.thakkar@arm.com> Subject: [dpdk-dev] [PATCH v6 0/4] hash: integrate RCU QSBR X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Integrate RCU QSBR to make it easier for the applications to use lock free algorithm. Resource reclamation implementation was split from the original series, and has already been part of RCU library. Rework the series to base hash integration on RCU reclamation APIs. Refer 'Resource reclamation framework for DPDK' available at [1] to understand various aspects of integrating RCU library into other libraries. [1] https://doc.dpdk.org/guides/prog_guide/rcu_lib.html Introduce a new API rte_hash_rcu_qsbr_add for application to register a RCU variable that hash library will use. Functional tests and performance tests are added to cover the integration with RCU. --- v6: - Update documentation - Remove hard-coded value v5: - Enable 'rcu' for Windows v4: - Fix clang compilation issues v3: - Add documentation - Add unit tests v2: - Remove defer queue related functions and use resource reclamation APIs from the RCU QSBR library instead - Remove patch (net/ixgbe: avoid multpile definitions of 'bool') from the series as it is already accepted Dharmik Thakkar (4): rcu: build on Windows lib/hash: integrate RCU QSBR test/hash: replace rte atomic with C11 atomic APIs test/hash: add tests for integrated RCU QSBR app/test/test_hash.c | 390 ++++++++++++++++++++++++- app/test/test_hash_readwrite_lf_perf.c | 259 ++++++++++++---- doc/guides/prog_guide/hash_lib.rst | 12 +- lib/librte_hash/meson.build | 1 + lib/librte_hash/rte_cuckoo_hash.c | 303 ++++++++++++++----- lib/librte_hash/rte_cuckoo_hash.h | 8 + lib/librte_hash/rte_hash.h | 77 ++++- lib/librte_hash/version.map | 2 +- lib/meson.build | 1 + 9 files changed, 920 insertions(+), 133 deletions(-) -- 2.17.1