From patchwork Wed Apr 22 03:30:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honnappa Nagarahalli X-Patchwork-Id: 185650 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp251524ilf; Tue, 21 Apr 2020 20:30:20 -0700 (PDT) X-Google-Smtp-Source: APiQypKOyHM2qih3cwDFKhRgPxX6nv/OuzVE/nE1jekgOyRuvgKvvThTontTAcRYfbENIw12ZS62 X-Received: by 2002:a17:906:3d69:: with SMTP id r9mr6689518ejf.20.1587526220688; Tue, 21 Apr 2020 20:30:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587526220; cv=none; d=google.com; s=arc-20160816; b=nxzQb+dM5EK5odHrNeGKWDkBxujysMGp1mMfP4apOfqWoGkLZBPkYfkiAk2rqIDbg/ Wp8zVzC5VrmmobSZbQQyhDTGFjvIyh4bqc8H5MH+TyuKZ9npECMav0RaBzEJgPlqAzo2 YsnW8Z6TgrF6RTpKgBw9+cbdW0ExyduFDTTxZ9HSojn7MzdU0Q7iSkSVvJGuExtmi/yQ 3VaZU4RDFiLqIVPrIN4Kt9UGe2pbTqi40LiW1UcbhNkfI36jnm7u//8J/NJKt6/hMsiW BCfv2LiR73w62VEV5zvOrWocvr/uT98R5axv5DDtJVmUqyiYIdPPEapUBZ72kGE+xgdx 6Uuw== 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=jdiltg99XUNA6jsh1rhxLXAxjD0U3JgwXtCAH0+rbqc=; b=gh3UoDCJvQaLp6nKHiogIc9sAnsMzdfS9k9pQ7w9NmdhOhJ8XNSDqdI+Ro86KgqivW BHyDpebC6pO2tccP2gL1TJw1rwhMGS+tK59lA7PPt0LAB4QlFxChog+ZLrlEUMvytTFn fkg6sMe5q4z9MinQwlYxkFswgoRWE9HDJihORWty8FwIei74Yw1CMfgrJtFihUCQbp9d +1I6x71HjZPIM2TygHEwvNELiCu0Sjk2mOhRgiuXa3beLDQTH6qPJtl3a6JbIM9nmao3 hhImNVumlEWuzTfBZrlfYD89p3k840Nq7reQ37TYIjIpreJwIOmaKq+2xjDDwdE/kzi3 G18g== 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 cm24si146328edb.586.2020.04.21.20.30.20; Tue, 21 Apr 2020 20:30:20 -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 229371C299; Wed, 22 Apr 2020 05:30:19 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id 713041C1DF for ; Wed, 22 Apr 2020 05:30:17 +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 A814630E; Tue, 21 Apr 2020 20:30:16 -0700 (PDT) Received: from qc2400f-1.austin.arm.com (qc2400f-1.austin.arm.com [10.118.14.48]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 94DA73F6CF; Tue, 21 Apr 2020 20:30:16 -0700 (PDT) From: Honnappa Nagarahalli To: konstantin.ananyev@intel.com, stephen@networkplumber.org, vladimir.medvedkin@intel.com, dev@dpdk.org Cc: honnappa.nagarahalli@arm.com, david.marchand@redhat.com, ruifeng.wang@arm.com, dharmik.thakkar@arm.com, nd@arm.com Date: Tue, 21 Apr 2020 22:30:02 -0500 Message-Id: <20200422033006.1124-1-honnappa.nagarahalli@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191001062917.35578-1-honnappa.nagarahalli@arm.com> References: <20191001062917.35578-1-honnappa.nagarahalli@arm.com> Subject: [dpdk-dev] [PATCH v5 0/4] Add RCU reclamation APIs 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" v5 1) rte_rcu_dq_delete does not return an error on NULL parameter 2) Removed good amount of memcopy's where possible 3) Changed the call back function to be friendly for batching. v4 1) RCU reclamation APIs changed to provide lot more flexibility a) The rte_rcu_qsbr_dq_enqueue and rte_rcu_qsbr_dq_reclaim APIs can be configured to be MT safe b) The auto reclamation limit and how much to reclaim can be configured c) rte_rcu_qsbr_dq_reclaim API returns the number of resources reclaimed and the number of pending resources on the defer queue d) rte_rcu_qsbr_dq_reclaim API takes maximum number of resources to reclaim as a parameter 2) Multiple minor fixes a) Private header file and test function names changed to remove 'rte_' b) Compilation for shared library c) Split the test cases into a separate commit d) Uses rte_ring_xxx_elem APIs to support flexible ring element size v3 1) Separated from the original series (https://patches.dpdk.org/cover/58811/) 2) Added reclamation APIs and test cases (Stephen, Yipeng) This is not a new patch. This patch set is separated from the LPM changes as the size of the changes in RCU library has grown due to comments from community. These APIs will help reduce the changes in LPM and hash libraries that are getting integrated with RCU library. This adds 4 new APIs to RCU library to create a defer queue, enqueue deleted resources, reclaim resources and delete the defer queue. The rationale for the APIs is documented in 3/4. Honnappa Nagarahalli (3): lib/rcu: add resource reclamation APIs test/rcu: test cases for RCU defer queue APIs lib/rcu: add additional debug logs Ruifeng Wang (1): doc/rcu: add RCU integration design details app/test/test_rcu_qsbr.c | 365 ++++++++++++++++++++++++++++- doc/guides/prog_guide/rcu_lib.rst | 59 +++++ lib/librte_rcu/Makefile | 2 +- lib/librte_rcu/meson.build | 7 + lib/librte_rcu/rcu_qsbr_pvt.h | 66 ++++++ lib/librte_rcu/rte_rcu_qsbr.c | 227 +++++++++++++++++- lib/librte_rcu/rte_rcu_qsbr.h | 203 +++++++++++++++- lib/librte_rcu/rte_rcu_version.map | 4 + lib/meson.build | 6 +- 9 files changed, 931 insertions(+), 8 deletions(-) create mode 100644 lib/librte_rcu/rcu_qsbr_pvt.h -- 2.17.1