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 D921CA0561; Sun, 19 Apr 2020 20:33:04 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9AD301D37E; Sun, 19 Apr 2020 20:33:03 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 466A71D37D for ; Sun, 19 Apr 2020 20:33:00 +0200 (CEST) IronPort-SDR: pl7wUgsBFIS0yG3DXIZT+Io6ZduoCreEP2B2MnzSew/jn+4LcBL/tNeFI8I/+gO7OEMlK0FYfW uOeEBpykY2NQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2020 11:32:59 -0700 IronPort-SDR: 1ikMvevLxNp+1mGjst10wuCBSL4QTfSx7hHK/pv4mn0I4WZ9fgKjlS4LF1nlOBoHWwmAuxVI/N ymbEto+mcC5Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,404,1580803200"; d="scan'208";a="401596332" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga004.jf.intel.com with ESMTP; 19 Apr 2020 11:32:59 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 19 Apr 2020 11:32:59 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 19 Apr 2020 11:32:59 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 19 Apr 2020 11:32:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JDdteJH2ExZS3sd4ZE+KinluCsd3Vmw/6aI39BYx6snt6llLuqU4CUs92OTQdZ8os5vxC9249VrMjGwIXu0z+YufAo1djLyHX4H0uTfmMZgDYlXzOkVCyNYqGU6EyoCfBT7nmSGGYVZYJOchv+zDogmebQNQjqOouJv+R1lQGZ+cu59hwVhiyJ2mbIfRKZdW12EfXyvBE37xcc/05mMDpzCGHeQxv1d/CmSVzAqvGBU7CiK2JZ1OC647SKiMNKFGHPUR9dmhJDcEJwV+4amkIuA/ZlL9V/0Q9rGG/aa+eIMRnM3D6VleABW26cPhlA9eQoQNgjtd/h0d4Wmbj+MEtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQZxl+iIJiHPC9m+qn12524MSX6djw/I4of4TaZxdTU=; b=Hv2KetkY6Iw1YFMa0yS+uERvASUhXYgBPxro3jO7epi4/Qx999pHs4khGA8D3LfnBPhIZRoMYwQWGqnzlejV9bsAsgAY7bOfLwD0Zdj9y3+yGqfWX/Pb8sTEdzHR47NtHDvuVbr0+pE4QwFxG6gOyj18g4x7TpCRgkJTObRS9zFxYemuSuQWxA6XX/TLNqE0S8nZpIjzpafGCR+cdtIf5lfTxBix62i9MW0/6U/GGniN+IVH0Ydyi6nAHUJTAMiDNCSYw2lBuG/PChktiq1Z790FxQa9uSRTJG7NtE8qOd6coNg2xVdpKZi+s7NBiYOVZaQAwUght4mf4srF84sABg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lQZxl+iIJiHPC9m+qn12524MSX6djw/I4of4TaZxdTU=; b=gIaFLsrP/WJkH9/tJcIJotmzXtuSdFn495WcmZhCvqUUvBTdemNMT9bZFUC7osGF/tDExCl3JRFkYftl2W5K7hfvGGRByZEgmEKs9buevaN+FKhMNIuTRLQdXFOEGbywibwhy/1ShypTvLhlRGj4mDoDR1GfF8HfgdOE/zO6wXQ= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB3509.namprd11.prod.outlook.com (2603:10b6:a03:8e::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.25; Sun, 19 Apr 2020 18:32:57 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f8cb:58cd:e958:fff4%6]) with mapi id 15.20.2921.027; Sun, 19 Apr 2020 18:32:57 +0000 From: "Ananyev, Konstantin" To: Honnappa Nagarahalli , "dev@dpdk.org" CC: "david.marchand@redhat.com" , "jielong.zjl@antfin.com" , nd Thread-Topic: [PATCH v5 7/9] ring: introduce peek style API Thread-Index: AQHWFZ8RvvbCVWB3qU658ll+ytGiJqh/uiOAgAEMLjA= Date: Sun, 19 Apr 2020 18:32:57 +0000 Message-ID: References: <20200417133639.14019-1-konstantin.ananyev@intel.com> <20200418163225.17635-1-konstantin.ananyev@intel.com> <20200418163225.17635-8-konstantin.ananyev@intel.com> In-Reply-To: Accept-Language: en-GB, 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 authentication-results: spf=none (sender IP is ) smtp.mailfrom=konstantin.ananyev@intel.com; x-originating-ip: [192.198.151.164] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bc8bb9b6-04cd-48a9-5df7-08d7e4901523 x-ms-traffictypediagnostic: BYAPR11MB3509: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-forefront-prvs: 0378F1E47A x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(346002)(376002)(396003)(366004)(136003)(39850400004)(6506007)(81156014)(8936002)(7696005)(5660300002)(54906003)(52536014)(110136005)(55016002)(8676002)(71200400001)(66946007)(66476007)(316002)(66556008)(64756008)(76116006)(186003)(9686003)(66446008)(86362001)(26005)(2906002)(478600001)(4326008)(33656002); DIR:OUT; SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cTwm+c+Kfp2h7WG9KLI/QjuCLt+SsQ6rg2UXVTur5rPigO65/OvfCtO7if6MyvZ8LFcRlzTt/Li269nUifstw5cRoECRJhHFQAp72gNn4blHJaZPK+Evx3NKevr5+5Gv6cYx7lLlxeWr047QXJqdoPuO+SwkZPcuvqOQB+YCivXYODiiz3IHd3BgtkQouVPpiNaMsZIU/tHq/xJ+tliaa/ir8nLbDU53nzopEBVLobQdIKmgYWo48VMGxLgQtpNrudfuEndi/XzCq6zd6MTZ4QoLRJkh2E0HQcwZQRwjiJf+hLbPbPtH5t5aSVajVgPlj+8oXPuZy5DGFDsj4Jo7xHl9Dj0gFY3uOxCJErmBwDuQHLXHT1Y8f8aRJ3n8UIcXZZ8uJahAABtf5A36xE4m1Lk55gt3iTkp5+k/q70cI0we7TLwX111L79x5zyP+LMU x-ms-exchange-antispam-messagedata: BCVj8oO1kSsPOnwkjLobvLv4XEGI6O0ROI1l9t0D2XvJmDzlb0p3aYhRZXV6zRmE65p+KTJhbczWajpZG9xuIac+xZUqtC2AsIK011Bo1vbAob75ADoCygbul57UCIDbO48xwGXlcIQH4h6cO/EYWQ== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: bc8bb9b6-04cd-48a9-5df7-08d7e4901523 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2020 18:32:57.3029 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9Q2/jN2Tu2gBXRFn/9gw4l90rFEAS/8g9MCNd1bni93hI2nxFzr1fSbrASJd45dXULG84A9mbaVvA+D92QUN5lgrIBlJg6bTxhc/K9hTPmQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3509 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v5 7/9] ring: introduce peek style API 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" > > diff --git a/lib/librte_ring/rte_ring_generic.h > > b/lib/librte_ring/rte_ring_generic.h > > index 953cdbbd5..9f5fdf13b 100644 > > --- a/lib/librte_ring/rte_ring_generic.h > > +++ b/lib/librte_ring/rte_ring_generic.h > Changes in this file are not required as we agreed to implement only C11 = for new features. Right, will remove. >=20 > > @@ -10,6 +10,54 @@ > > #ifndef _RTE_RING_GENERIC_H_ > > #define _RTE_RING_GENERIC_H_ > > > > +/** > > + * @internal get current tail value. > > + * This function should be used only for single thread producer/consum= er. > > + * Check that user didn't request to move tail above the head. > > + * In that situation: > > + * - return zero, that will cause abort any pending changes and > > + * return head to its previous position. > > + * - throw an assert in debug mode. > > + */ > > +static __rte_always_inline uint32_t > > +__rte_ring_st_get_tail(struct rte_ring_headtail *ht, uint32_t *tail, > > + uint32_t num) > > +{ > > + uint32_t h, n, t; > > + > > + h =3D ht->head; > > + t =3D ht->tail; > > + n =3D h - t; > > + > > + RTE_ASSERT(n >=3D num); > > + num =3D (n >=3D num) ? num : 0; > > + > > + *tail =3D h; > > + return num; > > +} > > + > > +/** > > + * @internal set new values for head and tail. > > + * This function should be used only for single thread producer/consum= er. > > + * Should be used only in conjunction with __rte_ring_st_get_tail. > > + */ > > +static __rte_always_inline void > > +__rte_ring_st_set_head_tail(struct rte_ring_headtail *ht, uint32_t tai= l, > > + uint32_t num, uint32_t enqueue) > > +{ > > + uint32_t pos; > > + > > + pos =3D tail + num; > > + > > + if (enqueue) > > + rte_smp_wmb(); > > + else > > + rte_smp_rmb(); > > + > > + ht->head =3D pos; > > + ht->tail =3D pos; > > +} > > + > > static __rte_always_inline void > > update_tail(struct rte_ring_headtail *ht, uint32_t old_val, uint32_t n= ew_val, > > uint32_t single, uint32_t enqueue) > > diff --git a/lib/librte_ring/rte_ring_peek.h b/lib/librte_ring/rte_ring= _peek.h > > new file mode 100644 index 000000000..2d06888b6 > > --- /dev/null