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 62CE3A057B; Mon, 23 Mar 2020 20:18:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9FF871C0AB; Mon, 23 Mar 2020 20:18:43 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id CD7183B5 for ; Mon, 23 Mar 2020 20:18:41 +0100 (CET) IronPort-SDR: mpadgtzavV/bNob0GHGFvL0v//wDCQZPiYiR4mOzaOabLyJU9IeUzqi2LmmtqwJuPQAyBMk5Qe p8h8t4MGC+WA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 12:18:40 -0700 IronPort-SDR: a+e/V82+afr20bX8kehBdDpHZQWL6W3QOGwOvuG8OAGoiDCXhjlJZyyDQ0eUQCznshypr+Pfts PVTgJUs3t2ug== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,297,1580803200"; d="scan'208";a="445923221" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 23 Mar 2020 12:18:39 -0700 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 23 Mar 2020 12:18:39 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 23 Mar 2020 12:18:38 -0700 Received: from NAM02-BL2-obe.outbound.protection.outlook.com (104.47.38.59) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 23 Mar 2020 12:18:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d/jNN8pfghG9FkH4g0Dh+eiDnBV2Pw3XfoZyBDyYlhN1HxQx6XY+ZZpCZCkHk6Wsi8Qy/qFs7Qi7amF3dEviGRGiEKW5KdQRxr9cpFjdlyLM4bLUd57/t4vAxc+GaOuCjPQBRPvd17rRHV1Y9hfrioAAAXJtehwFJW28qJp/8lbpB8KnnCRI9BYGgrxdlUh02CCG6DhWyaTwtqnwVeGCcpklt1VJzRgUJaToxkmmDHa8qtqYstjYXebEAmseSCVG7qOXRyVE7JytVluvm/uurVwGxJmFehFNuXjk2RfNydp0b10ytJO+RKNqt9Fcua0amOfpGKXMsfmmy/OHx/0zDg== 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=GaBAlMErnvCx4WT996mT1yj9Soasapp+s6QxocqrEtE=; b=EMIm83e9HBM0DAdIIX5qe/sLXZNC2lOWmapvOa0bBj8/xfXvq4L1bijJzHfe3w054oUyh+MLrNQSY8D5dfGeYri9pRdGBODKmsF3dV/+I8FUMiETjtqaj5Pd6CAgYS8ruShS3e7al6o6NRsYCP97f2+oJDn+twCJ/cRpWBusGaaPSxSGr75iMaU7vd8tZlKlb6BSBZW5TJvCAr7EYMpfh+aA4kKLqI02vesc0fGKmzSUdo2ydQ8pKVzYkGNX/eyUzWwwLX5YZl7v6tBt5Atqny47n3WA/XGEr5AfW60pran93F5POFem1/1ECeOWm9nu6k9aInl5m9yxGSGeCUt36A== 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=GaBAlMErnvCx4WT996mT1yj9Soasapp+s6QxocqrEtE=; b=oqio7URVRquevGHgfW/iLfCBaez+8Eg4nrtSoBAEvK7IT9I4fQeumP4kqIIx/J/gFsVmqO9kcoeh/TGYnmiUPqa3zTVWoCZFCoK4ZFnCDEi2o5dx8aHwK5iNkQisHP/BfZHM1Xe6d6U+IZ9S4sA/oiEmoG+558LilDCJdYbkxNc= Received: from SN6PR11MB2558.namprd11.prod.outlook.com (2603:10b6:805:5d::19) by SN6PR11MB3198.namprd11.prod.outlook.com (2603:10b6:805:c3::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.20; Mon, 23 Mar 2020 19:18:36 +0000 Received: from SN6PR11MB2558.namprd11.prod.outlook.com ([fe80::5df7:d515:ec1d:8db1]) by SN6PR11MB2558.namprd11.prod.outlook.com ([fe80::5df7:d515:ec1d:8db1%7]) with mapi id 15.20.2835.021; Mon, 23 Mar 2020 19:18:36 +0000 From: "Ananyev, Konstantin" To: Honnappa Nagarahalli , Phil Yang , "thomas@monjalon.net" , "Van Haaren, Harry" , "stephen@networkplumber.org" , "maxime.coquelin@redhat.com" , "dev@dpdk.org" , "Richardson, Bruce" CC: "david.marchand@redhat.com" , "jerinj@marvell.com" , "hemant.agrawal@nxp.com" , Gavin Hu , Ruifeng Wang , Joyce Kong , nd , nd Thread-Topic: [PATCH v3 06/12] ipsec: optimize with c11 atomic for sa outbound sqn update Thread-Index: AQHV+/oXyqmxuvMqMkaN9n+g1LYtyqhWh04ggAANbwCAAAGBEA== Date: Mon, 23 Mar 2020 19:18:36 +0000 Message-ID: References: <1583999071-22872-1-git-send-email-phil.yang@arm.com> <1584407863-774-1-git-send-email-phil.yang@arm.com> <1584407863-774-7-git-send-email-phil.yang@arm.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.182] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c1fe7161-e71a-4c82-82ce-08d7cf5efc5a x-ms-traffictypediagnostic: SN6PR11MB3198: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0351D213B3 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(136003)(376002)(346002)(39860400002)(396003)(199004)(6636002)(26005)(53546011)(186003)(15650500001)(2906002)(4326008)(33656002)(7416002)(478600001)(9686003)(66946007)(6506007)(54906003)(8936002)(8676002)(64756008)(66446008)(66476007)(7696005)(76116006)(52536014)(86362001)(81166006)(71200400001)(55016002)(66556008)(5660300002)(81156014)(110136005)(316002)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:SN6PR11MB3198; H:SN6PR11MB2558.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wi/n1e2gE/x4aK2zLZDmSG6NV8tAz0PPXpcQTVs6c1e7snSn/Mcuy5bQwZIha7SuZfTdb4GFsre/Q8kdeTS8AnB7++Fv6UMAkotOmYOEychpM6lA/jP/GofpqBih8dBcRvlk9V/1cDeyZDn1c4CaWsh+2iz5HTPVrHIchUdjPK9saxSI8xS7dQhSXsbW1f411Uijoe55iauAZdzprCBpA+78W3Ko6gyoOPMpLDuN/bHc2q36Yv/Zq6cmlRDRlsTdXLOZ3ehriJ87j2GlWclo3g3G5OtOsxs4N2vZ7SuuRgHpQb4sFusAIAnPRQEVi1JLT9dGOVqFahWid92NfP+f89kuTUpDwIXjkJaS3Gj/V2X3BLj/dMtkwK6qWTOp17B9I3d9KB4XVzU8G3BavVRiTNLU4cDyndtlMBz97FwQT3N49NyYzaDsxXiaHIj8McE/O25zfa6bi5yyNItIQqjbHJq8gjRfmUwT+SOmJb87HuUE9rMNMXdO0lwXn7nkcTFL x-ms-exchange-antispam-messagedata: NSlDF8MTa5G0A2zH9gaVZVtjSdFkrJNROObwig9dvbfYDPEuCta8RdHvmjyh/R7zsNnzek7C5ki+XoDtkiMrUeItKrc9qP/aTO5L/XJ2UcqMJEhX44wR2oTuxJf0wD1uOmXGkCBtZypa62suIqxLtg== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c1fe7161-e71a-4c82-82ce-08d7cf5efc5a X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2020 19:18:36.2231 (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: /oxCxSqw2jhmQfSUsrhpARg50hj1UdQvJBjR8ZR5cP4yGoUUXIFN/aozKNy9Mct1waNTYpLaP4A/TLX4BeuiztVdk7cZQ+RMB3RYfnIntbs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3198 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 06/12] ipsec: optimize with c11 atomic for sa outbound sqn update 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: Honnappa Nagarahalli > Sent: Monday, March 23, 2020 7:08 PM > To: Ananyev, Konstantin ; Phil Yang ; thomas@monjalon.net; Van Haaren, Harry > ; stephen@networkplumber.org; maxime.coquelin= @redhat.com; dev@dpdk.org; Richardson, Bruce > > Cc: david.marchand@redhat.com; jerinj@marvell.com; hemant.agrawal@nxp.com= ; Gavin Hu ; Ruifeng Wang > ; Joyce Kong ; nd ;= Honnappa Nagarahalli > ; nd > Subject: RE: [PATCH v3 06/12] ipsec: optimize with c11 atomic for sa outb= ound sqn update >=20 > >=20 > > Subject: RE: [PATCH v3 06/12] ipsec: optimize with c11 atomic for sa ou= tbound > > sqn update > > > > Hi Phil, > > > > > > > > For SA outbound packets, rte_atomic64_add_return is used to generate > > > SQN atomically. This introduced an unnecessary full barrier by callin= g > > > the '__sync' builtin implemented rte_atomic_XX API on aarch64. This > > > patch optimized it with c11 atomic and eliminated the expensive > > > barrier for aarch64. > > > > > > Signed-off-by: Phil Yang > > > Reviewed-by: Ruifeng Wang > > > Reviewed-by: Gavin Hu > > > --- > > > lib/librte_ipsec/ipsec_sqn.h | 3 ++- > > > lib/librte_ipsec/sa.h | 2 +- > > > 2 files changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/lib/librte_ipsec/ipsec_sqn.h > > > b/lib/librte_ipsec/ipsec_sqn.h index 0c2f76a..e884af7 100644 > > > --- a/lib/librte_ipsec/ipsec_sqn.h > > > +++ b/lib/librte_ipsec/ipsec_sqn.h > > > @@ -128,7 +128,8 @@ esn_outb_update_sqn(struct rte_ipsec_sa *sa, > > > uint32_t *num) > > > > > > n =3D *num; > > > if (SQN_ATOMIC(sa)) > > > - sqn =3D (uint64_t)rte_atomic64_add_return(&sa- > > >sqn.outb.atom, n); > > > + sqn =3D __atomic_add_fetch(&sa->sqn.outb.atom, n, > > > + __ATOMIC_RELAXED); > > > > One generic thing to note: > > clang for i686 in some cases will generate a proper function call for 6= 4-bit > > __atomic builtins (gcc seems to always generate cmpxchng8b for such cas= es). > > Does anyone consider it as a potential problem? > > It probably not a big deal, but would like to know broader opinion. > I had looked at this some time back for GCC. The function call is generat= ed only if the underlying platform does not support the atomic > instructions for the operand size. Otherwise, gcc generates the instructi= ons directly. > I would think the behavior would be the same for clang. >From what I see not really. As an example: $ cat tatm11.c #include struct x { uint64_t v __attribute__((aligned(8))); }; uint64_t ffxadd1(struct x *x, uint32_t n, uint32_t m) { return __atomic_add_fetch(&x->v, n, __ATOMIC_RELAXED); } uint64_t ffxadd11(uint64_t *v, uint32_t n, uint32_t m) { return __atomic_add_fetch(v, n, __ATOMIC_RELAXED); } gcc for i686 will generate code with cmpxchng8b for both cases. clang will generate cmpxchng8b for ffxadd1() - when data is explicitly 8B a= ligned, but will emit a function call for ffxadd11(). >=20 > > > > > else { > > > sqn =3D sa->sqn.outb.raw + n; > > > sa->sqn.outb.raw =3D sqn; > > > diff --git a/lib/librte_ipsec/sa.h b/lib/librte_ipsec/sa.h index > > > d22451b..cab9a2e 100644 > > > --- a/lib/librte_ipsec/sa.h > > > +++ b/lib/librte_ipsec/sa.h > > > @@ -120,7 +120,7 @@ struct rte_ipsec_sa { > > > */ > > > union { > > > union { > > > - rte_atomic64_t atom; > > > + uint64_t atom; > > > uint64_t raw; > > > } outb; > > > > If we don't need rte_atomic64 here anymore, then I think we can collaps= e the > > union to just: > > uint64_t outb; > > > > > struct { > > > -- > > > 2.7.4