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 02642A0562; Sat, 4 Apr 2020 19:27:58 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ED12F5F13; Sat, 4 Apr 2020 19:27:57 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 18A2AFFA for ; Sat, 4 Apr 2020 19:27:55 +0200 (CEST) IronPort-SDR: zhZaHe51Nn7f7VyafCM/pSn+5/Ou808fxvpxC36RNcQ5TSolLYlY0zLvhQ69UaK/rGl+yuuk9X 9YbsnmYqft3w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Apr 2020 10:27:54 -0700 IronPort-SDR: ec87DJ1YYTiZ/QhJfck/pvEaF42AUMN07jlN8s/gJpc/nsH1CujNz6Ii45lK+MRiZKqGR+q8Qj 05ik3NV2zk8w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,344,1580803200"; d="scan'208";a="253677373" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga006.jf.intel.com with ESMTP; 04 Apr 2020 10:27:53 -0700 Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sat, 4 Apr 2020 10:27:53 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX602.ccr.corp.intel.com (10.109.6.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 5 Apr 2020 01:27:51 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Sun, 5 Apr 2020 01:27:51 +0800 From: "Wang, Haiyue" To: "Ananyev, Konstantin" , "dev@dpdk.org" CC: "honnappa.nagarahalli@arm.com" , "david.marchand@redhat.com" , "jielong.zjl@antfin.com" , "Ananyev, Konstantin" Thread-Topic: [dpdk-dev] [PATCH v3 3/9] ring: introduce RTS ring mode Thread-Index: AQHWCd9yTN/Zj8tv80qp54nh7wFoXahpOAcA Date: Sat, 4 Apr 2020 17:27:51 +0000 Message-ID: References: <20200402220959.29885-1-konstantin.ananyev@intel.com> <20200403174235.23308-1-konstantin.ananyev@intel.com> <20200403174235.23308-4-konstantin.ananyev@intel.com> In-Reply-To: <20200403174235.23308-4-konstantin.ananyev@intel.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 3/9] ring: introduce RTS ring mode 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" > -----Original Message----- > From: dev On Behalf Of Konstantin Ananyev > Sent: Saturday, April 4, 2020 01:42 > To: dev@dpdk.org > Cc: honnappa.nagarahalli@arm.com; david.marchand@redhat.com; jielong.zjl@= antfin.com; Ananyev, > Konstantin > Subject: [dpdk-dev] [PATCH v3 3/9] ring: introduce RTS ring mode >=20 > Introduce relaxed tail sync (RTS) mode for MT ring synchronization. > Aim to reduce stall times in case when ring is used on > overcommited cpus (multiple active threads on the same cpu). > The main difference from original MP/MC algorithm is that > tail value is increased not by every thread that finished enqueue/dequeue= , > but only by the last one. > That allows threads to avoid spinning on ring tail value, > leaving actual tail value change to the last thread in the update queue. >=20 > check-abi.sh reports what I believe is a false-positive about > ring cons/prod changes. As a workaround, devtools/libabigail.abignore is > updated to suppress *struct ring* related errors. >=20 > Signed-off-by: Konstantin Ananyev > --- > devtools/libabigail.abignore | 7 + > lib/librte_ring/Makefile | 5 +- > lib/librte_ring/meson.build | 5 +- > lib/librte_ring/rte_ring.c | 100 +++++++- > lib/librte_ring/rte_ring.h | 110 ++++++++- > lib/librte_ring/rte_ring_elem.h | 86 ++++++- > lib/librte_ring/rte_ring_rts.h | 316 +++++++++++++++++++++++++ > lib/librte_ring/rte_ring_rts_elem.h | 205 ++++++++++++++++ > lib/librte_ring/rte_ring_rts_generic.h | 210 ++++++++++++++++ > 9 files changed, 1015 insertions(+), 29 deletions(-) > create mode 100644 lib/librte_ring/rte_ring_rts.h > create mode 100644 lib/librte_ring/rte_ring_rts_elem.h > create mode 100644 lib/librte_ring/rte_ring_rts_generic.h >=20 > #ifdef __cplusplus > diff --git a/lib/librte_ring/rte_ring_rts.h b/lib/librte_ring/rte_ring_rt= s.h > new file mode 100644 > index 000000000..18404fe48 > --- /dev/null > +++ b/lib/librte_ring/rte_ring_rts.h > @@ -0,0 +1,316 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * > + * Copyright (c) 2010-2017 Intel Corporation > + * Copyright (c) 2007-2009 Kip Macy kmacy@freebsd.org > + * All rights reserved. > + * Derived from FreeBSD's bufring.h Find that it is buf_ring.h in real ;-) > + * Used as BSD-3 Licensed with permission from Kip Macy. > + */ > -- > 2.17.1