From patchwork Tue Oct 1 18:28:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honnappa Nagarahalli X-Patchwork-Id: 174924 Delivered-To: patch@linaro.org Received: by 2002:ac9:19ad:0:0:0:0:0 with SMTP id d45csp8492325oce; Tue, 1 Oct 2019 11:29:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqy2FHYiyb73aHJ2gle8OFIdi787+NVC5L6bMssvsXn8T9QlqYWh5yD1nAFHpSCZyrOJTiuM X-Received: by 2002:a17:906:a44e:: with SMTP id cb14mr25511986ejb.277.1569954555212; Tue, 01 Oct 2019 11:29:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569954555; cv=none; d=google.com; s=arc-20160816; b=Nel2gQe4WZOfd5kB29uExQwjaVfMEFzvMVnMbrHCYU/LgwlcLPwichFhL3o50DgtDK ETcb960UKENWXxj4jPBh9DEcBjy+xNytUJ2mulYSFiN2kwK3PLmdo8BNm4htIy6n+YSz W679yUPfDD+7do8FZ/LXFWm8vOA8W6j9bIr0q5ZNOUO83RbOhH1ivkV75CDc1HjgiQSe nbLNYj/6MIhlpKvhZgsnmdxZqYDNqYjQAX0jhputN8hpnUXTzooAGR47f96QduD4pK7R v0qBI8+G+/BNdIm7/9mW5lsgoRel6xZv3saYyGarUqPWzZwXqRj9Db0sZ8f5GJ+YCRdC 4J9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:references:in-reply-to :message-id:date:cc:to:from; bh=k3/2goq0ZWamiekxEY4t9XEReeHnhPuUR7Ge9YZocTE=; b=c4aN4aCrTy9jRB5dAAL5zWLwjmeU1bGhMhLS5Oja4WZUcrPnbFGa0a9hJnQwO9bq1I Pe6OWutE6w4BWBt2fWpkKEOB2O0BsKg/dxoF3UJx/sBwbCynB9zbBAAW8WP2mCP6xSao NzTry2jeHcTle2w4q5+n3WYLFABQ7AcPacafhX/0OxzejJab3SDNN1/iwJUCDmD04kat aZ+xhFJYwfoDV8EMFiVESTjAfEnarLcG+kYNJQyhm25ARs4TFcTS6AyX/YlXEneUJFp3 rIV/tNVmSIgS92EcNwuBH2rnREhnAE5znBxQK+U5cEj2dG1jTqe2WryW4w/Ax0OCwCxG 0WxA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id j28si11323924eda.161.2019.10.01.11.29.14; Tue, 01 Oct 2019 11:29:15 -0700 (PDT) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org 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