Message ID | 20200710022227.103963-1-ruifeng.wang@arm.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 00C20A0526; Fri, 10 Jul 2020 04:22:40 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 566591D723; Fri, 10 Jul 2020 04:22:40 +0200 (CEST) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by dpdk.org (Postfix) with ESMTP id B183E1D702 for <dev@dpdk.org>; Fri, 10 Jul 2020 04:22:38 +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 1D9B331B; Thu, 9 Jul 2020 19:22:38 -0700 (PDT) Received: from net-arm-thunderx2-02.shanghai.arm.com (net-arm-thunderx2-02.shanghai.arm.com [10.169.210.119]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 09B513F9AB; Thu, 9 Jul 2020 19:22:35 -0700 (PDT) From: Ruifeng Wang <ruifeng.wang@arm.com> To: Cc: dev@dpdk.org, mdr@ashroe.eu, konstantin.ananyev@intel.com, honnappa.nagarahalli@arm.com, nd@arm.com, Ruifeng Wang <ruifeng.wang@arm.com> Date: Fri, 10 Jul 2020 10:22:24 +0800 Message-Id: <20200710022227.103963-1-ruifeng.wang@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 v10 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 <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
RCU integration with LPM library
|
|
Message
Ruifeng Wang
July 10, 2020, 2:22 a.m. UTC
This patchset integrates RCU QSBR support with LPM library. Resource reclaimation implementation was splitted from the original series, and has already been part of RCU library. Rework the series to base LPM integration on RCU reclaimation APIs. 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. Functional tests and performance tests are added to cover the integration with RCU. --- v10: Added missing Acked-by tags. v9: Cleared lpm when allocation failed. (David) v8: Fixed ABI issue by adding internal LPM control structure. (David) Changed to use RFC5737 address in unit test. (Vladimir) v7: Fixed typos in document. v6: Remove ALLOW_EXPERIMENTAL_API from rte_lpm.c. v5: No default value for reclaim_thd. This allows reclamation triggering with every call. Pass LPM pointer instead of tbl8 as argument of reclaim callback free function. Updated group_idx check at tbl8 allocation. Use enums instead of defines for different reclamation modes. RCU QSBR integrated path is inside ALLOW_EXPERIMENTAL_API to avoid ABI change. v4: Allow user to configure defer queue: size, reclaim threshold, max entries. Return defer queue handler so user can manually trigger reclaimation. Add blocking mode support. Defer queue will not be created. Honnappa Nagarahalli (1): test/lpm: add RCU integration performance tests Ruifeng Wang (2): lib/lpm: integrate RCU QSBR test/lpm: add LPM RCU integration functional tests app/test/test_lpm.c | 291 ++++++++++++++++- app/test/test_lpm_perf.c | 492 ++++++++++++++++++++++++++++- doc/guides/prog_guide/lpm_lib.rst | 32 ++ lib/librte_lpm/Makefile | 2 +- lib/librte_lpm/meson.build | 1 + lib/librte_lpm/rte_lpm.c | 165 ++++++++-- lib/librte_lpm/rte_lpm.h | 53 ++++ lib/librte_lpm/rte_lpm_version.map | 6 + 8 files changed, 1016 insertions(+), 26 deletions(-)
Comments
On Fri, Jul 10, 2020 at 4:22 AM Ruifeng Wang <ruifeng.wang@arm.com> wrote: > > This patchset integrates RCU QSBR support with LPM library. > > Resource reclaimation implementation was splitted from the original > series, and has already been part of RCU library. Rework the series > to base LPM integration on RCU reclaimation APIs. > > 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. > > Functional tests and performance tests are added to cover the > integration with RCU. Series applied. A comment though. I am surprised to see the defer queue is still exposed out of lpm. +int rte_lpm_rcu_qsbr_add(struct rte_lpm *lpm, struct rte_lpm_rcu_config *cfg, + struct rte_rcu_qsbr_dq **dq); If this is intended, we will need unit tests for this parameter as I could see none. Else, it can be removed. Please send a followup patch for rc2. Thanks.
> -----Original Message----- > From: David Marchand <david.marchand@redhat.com> > Sent: Friday, July 10, 2020 8:21 PM > To: Ruifeng Wang <Ruifeng.Wang@arm.com> > Cc: dev <dev@dpdk.org>; Ray Kinsella <mdr@ashroe.eu>; Ananyev, > Konstantin <konstantin.ananyev@intel.com>; Honnappa Nagarahalli > <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>; Vladimir > Medvedkin <vladimir.medvedkin@intel.com> > Subject: Re: [dpdk-dev] [PATCH v10 0/3] RCU integration with LPM library > > On Fri, Jul 10, 2020 at 4:22 AM Ruifeng Wang <ruifeng.wang@arm.com> > wrote: > > > > This patchset integrates RCU QSBR support with LPM library. > > > > Resource reclaimation implementation was splitted from the original > > series, and has already been part of RCU library. Rework the series to > > base LPM integration on RCU reclaimation APIs. > > > > 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. > > > > Functional tests and performance tests are added to cover the > > integration with RCU. > > Series applied. > > A comment though. > > I am surprised to see the defer queue is still exposed out of lpm. > > +int rte_lpm_rcu_qsbr_add(struct rte_lpm *lpm, struct rte_lpm_rcu_config > *cfg, > + struct rte_rcu_qsbr_dq **dq); > > If this is intended, we will need unit tests for this parameter as I could see > none. > Else, it can be removed. > Looking at comments in v4, there was consensus that exposure of defer queue is not needed. Enough flexibility has been provided to configure defer queue. I should have removed this prarameter. > Please send a followup patch for rc2. Will send out followup patch. Thanks. /Ruifeng > Thanks. > > > -- > David Marchand