From patchwork Fri Apr 3 18:41:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Honnappa Nagarahalli X-Patchwork-Id: 185173 Delivered-To: patch@linaro.org Received: by 2002:a92:de47:0:0:0:0:0 with SMTP id e7csp882061ilr; Fri, 3 Apr 2020 11:41:54 -0700 (PDT) X-Google-Smtp-Source: APiQypKiumAXQX4xcNmaHnk+Xzzx4GVCmldkcezdzlaudSCm+PzPEHAdGvvxrSweFg1KSHpAWcHR X-Received: by 2002:adf:b1d8:: with SMTP id r24mr10535346wra.266.1585939314850; Fri, 03 Apr 2020 11:41:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585939314; cv=none; d=google.com; s=arc-20160816; b=JBcf2Yn69k5srxEoIYcKOSG0DXLoH0kssXGIumlHVpTx/zoo7S42IWUhXenF8mxI7G PPgW/W7vMcpc2HNrBEBPddsldUdaG559lF0mnwQjYRvl70QX5AGQOl78NNPLzX4JWgRM fdjtQrx6obNT8HzWJZNJRHtibbkwI+1ORDKKki74MyFEd4TW9u6ZKMPwpY4h4MUXjf2h /TXe3U3r6RKZIc/cc8tYppZGRpqPOmgErtcj2ucHugIPIPX06vpITOeT9e33T+255lfL pL6xEvjYbEVQ1/XRToM8LeabaH/qrhxWxl5gDND3UW5xWZbXZE2V5MSjrSiHyP43Upfv SY+Q== 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=Gp1rjXgVn/OdLk9QGTIEpd0ujY60D9SNb0GzAWXngPU=; b=gvZhaYx4x3u7eRiyOywFT0O5kRiGCzQzLrDfBE5vQE9oSy5XZmzw4HFbByPo/vTZcf TLGFALKc48OeSrwIroWewUcQ45YwpK2nfZLK/FuVuCiKKHppDwJbTwV6gEDaoIH/wVqe QIQx5Ytv4gkwoNG3Oe/8rUon47KmujrWtEKS6mWnGm0rgzctKpwkkY0Y9xteFD55R7DM NaY2EoK39XdmqeC9I2QHxbnBRCASzzwtHo/OXlORRF3Unj+k8VBXtYO0NKqLsWEZKwt9 oLGq5/+U32p1MBLbQv0Jxx9Fh02/bdZudnB8PWVvHhzRjaXyi5vsa2uUcIft/8YC+bKl UQww== 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 p8si4076693wrj.38.2020.04.03.11.41.54; Fri, 03 Apr 2020 11:41:54 -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 82CAC1C1AD; Fri, 3 Apr 2020 20:41:53 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id C8FA51C1A7 for ; Fri, 3 Apr 2020 20:41:50 +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 3C05B1FB; Fri, 3 Apr 2020 11:41:50 -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 32E103F71E; Fri, 3 Apr 2020 11:41:50 -0700 (PDT) From: Honnappa Nagarahalli To: konstantin.ananyev@intel.com, stephen@networkplumber.org, vladimir.medvedkin@intel.com Cc: dev@dpdk.org, honnappa.nagarahalli@arm.com, ruifeng.wang@arm.com, dharmik.thakkar@arm.com, nd@arm.com Date: Fri, 3 Apr 2020 13:41:38 -0500 Message-Id: <20200403184142.7729-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 v4 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" 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) Depends on: https://patchwork.dpdk.org/cover/67696/. However it needed changes (will send the comments). So, cannot be tested right now. But, please look at the changes in V4. 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. The patches to LPM and HASH libraries to integrate RCU will depend on this patch. 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 | 2 + lib/librte_rcu/rcu_qsbr_pvt.h | 57 +++++ lib/librte_rcu/rte_rcu_qsbr.c | 243 ++++++++++++++++++- lib/librte_rcu/rte_rcu_qsbr.h | 197 +++++++++++++++- lib/librte_rcu/rte_rcu_version.map | 4 + lib/meson.build | 6 +- 9 files changed, 928 insertions(+), 7 deletions(-) create mode 100644 lib/librte_rcu/rcu_qsbr_pvt.h -- 2.17.1