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 69940A2EDB for ; Fri, 6 Sep 2019 11:45:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 3D2861F2AE; Fri, 6 Sep 2019 11:45:47 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id AC5F21F2AD for ; Fri, 6 Sep 2019 11:45:45 +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 163EF1570; Fri, 6 Sep 2019 02:45:45 -0700 (PDT) Received: from net-arm-c2400-02.shanghai.arm.com (net-arm-c2400-02.shanghai.arm.com [10.169.40.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id A05333F59C; Fri, 6 Sep 2019 02:45:42 -0700 (PDT) From: Ruifeng Wang To: bruce.richardson@intel.com, vladimir.medvedkin@intel.com, olivier.matz@6wind.com Cc: dev@dpdk.org, stephen@networkplumber.org, konstantin.ananyev@intel.com, gavin.hu@arm.com, honnappa.nagarahalli@arm.com, dharmik.thakkar@arm.com, nd@arm.com, Ruifeng Wang Date: Fri, 6 Sep 2019 17:45:28 +0800 Message-Id: <20190906094534.36060-1-ruifeng.wang@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190822063457.41596-1-ruifeng.wang@arm.com> References: <20190822063457.41596-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v2 0/6] RCU integration with LPM library 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" This patchset integrates RCU QSBR support with LPM library. Document is added with suggested design of integrating RCU library with other libraries in DPDK. As an example, LPM library adds the integration. As an option, RCU is used to safely free tbl8 groups that can be recycled. Table will not be reclaimed or reused until reader finished referencing it. New API rte_lpm_rcu_qsbr_add is introduced for application to register a RCU variable that LPM library will use. This provides user the handle to enable RCU that integrated in LPM library. New API rte_ring_peek is introduced to help on management of reclaiming FIFO queue. Honnappa Nagarahalli (3): doc/rcu: add RCU integration design details test/lpm: reset total time test/lpm: add RCU integration performance tests Ruifeng Wang (3): lib/ring: add peek API lib/lpm: integrate RCU QSBR app/test: add test case for LPM RCU integration app/test/test_lpm.c | 153 +++++++++++++++- app/test/test_lpm_perf.c | 278 ++++++++++++++++++++++++++++- doc/guides/prog_guide/rcu_lib.rst | 52 ++++++ lib/librte_lpm/Makefile | 3 +- lib/librte_lpm/meson.build | 2 + lib/librte_lpm/rte_lpm.c | 223 +++++++++++++++++++++-- lib/librte_lpm/rte_lpm.h | 22 +++ lib/librte_lpm/rte_lpm_version.map | 6 + lib/librte_ring/rte_ring.h | 30 ++++ lib/meson.build | 3 +- 10 files changed, 751 insertions(+), 21 deletions(-) -- 2.17.1