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 93F15A2EDB for ; Tue, 1 Oct 2019 20:29:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E73BD4C74; Tue, 1 Oct 2019 20:29:13 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id E50134C74 for ; Tue, 1 Oct 2019 20:29:12 +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 EA0031000; Tue, 1 Oct 2019 11:29:11 -0700 (PDT) Received: from qc2400f-1.austin.arm.com (qc2400f-1.austin.arm.com [10.118.12.34]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D5E1C3F706; Tue, 1 Oct 2019 11:29:11 -0700 (PDT) From: Honnappa Nagarahalli To: bruce.richardson@intel.com, vladimir.medvedkin@intel.com, olivier.matz@6wind.com Cc: dev@dpdk.org, konstantin.ananyev@intel.com, stephen@networkplumber.org, paulmck@linux.ibm.com, Gavin.Hu@arm.com, Honnappa.Nagarahalli@arm.com, Dharmik.Thakkar@arm.com, Ruifeng.Wang@arm.com, nd@arm.com, Honnappa Nagarahalli Date: Tue, 1 Oct 2019 13:28:54 -0500 Message-Id: <20191001182857.43867-1-honnappa.nagarahalli@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190906094534.36060-1-ruifeng.wang@arm.com> References: <20190906094534.36060-1-ruifeng.wang@arm.com> Subject: [dpdk-dev] [PATCH v3 0/3] 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 patch set is dependent on https://patches.dpdk.org/cover/60270/ This patchset integrates RCU QSBR support with LPM library. Please refer to RCU documentation in the above mentioned patch series. This patch set follows the suggested design of integrating RCU library with other libraries in DPDK. RCU is used to safely free tbl8 groups that can be recycled. tbl8 groups will not be reclaimed or reused until readers stopped referencing it. This is implemented as an optional feature to ensure the existing applications are not affected. 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 this feature. v3: 1) Integration with new RCU defer queue APIs (much smaller and simpler code in LPM library itself) 2) Separated the 'test/lpm: reset total time' patch from this series 3) Added multi-writer performance test. The performance difference between with and without RCU varies and is not small for multi-writer. However, this is due to the tbl8 group allocation algorithm in LPM, which is a linear search algorithm (given that the test case uses large number of tbl8 groups). We should look to change this algorithm to O(1) in the future. 4) Incorporated applicable feedback from Vladimir Honnappa Nagarahalli (1): test/lpm: add RCU integration performance tests Ruifeng Wang (2): lib/lpm: integrate RCU QSBR app/test: add test case for LPM RCU integration app/test/test_lpm.c | 152 ++++++++- app/test/test_lpm_perf.c | 487 ++++++++++++++++++++++++++++- lib/librte_lpm/Makefile | 3 +- lib/librte_lpm/meson.build | 2 + lib/librte_lpm/rte_lpm.c | 102 +++++- lib/librte_lpm/rte_lpm.h | 21 ++ lib/librte_lpm/rte_lpm_version.map | 6 + 7 files changed, 757 insertions(+), 16 deletions(-) -- 2.17.1