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 D7B8DA04B5; Thu, 10 Sep 2020 03:30:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8B9721BEB3; Thu, 10 Sep 2020 03:30:52 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2042.outbound.protection.outlook.com [40.107.21.42]) by dpdk.org (Postfix) with ESMTP id 787FA255 for ; Thu, 10 Sep 2020 03:30:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RRMg/VKnOBUFJtmEMFAbql9Kih/BrDP4alKqg+iJroA=; b=TvPoMEO512fMhWkXJ5vfFaOH/9dqVwfws8cF+hTK3svJOg9tyeX71O+qLtDUHupHLa17FAO9q+vCxYR0F+VxKK+gS2VgPzByCbcG7yorfMaQqng1zWaRD6ZEIoOBaPiZXtqMod8XO+O5IfuCiORJhTr//sRT3e+DlhOd5IZt2bw= Received: from AM6P193CA0097.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::38) by VI1PR0802MB2383.eurprd08.prod.outlook.com (2603:10a6:800:a5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Thu, 10 Sep 2020 01:30:47 +0000 Received: from AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:88:cafe::ab) by AM6P193CA0097.outlook.office365.com (2603:10a6:209:88::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Thu, 10 Sep 2020 01:30:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT024.mail.protection.outlook.com (10.152.16.175) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Thu, 10 Sep 2020 01:30:47 +0000 Received: ("Tessian outbound a0bffebca527:v64"); Thu, 10 Sep 2020 01:30:47 +0000 X-CR-MTA-TID: 64aa7808 Received: from fc6e153cc9ad.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C1E1C953-E549-42AF-B5B6-9190620F7363.1; Thu, 10 Sep 2020 01:30:42 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fc6e153cc9ad.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 10 Sep 2020 01:30:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+3em3bmyeMJvsDQ1ma6ubKMTrEwE8R+YJVVjF3yfzQUcD9x5LbKn464nb9/LkymxIrOUFozBhryD1b1EC/M7jEX8nm4zeV3D1XNDgSN1ZYq00D1Jrp9PHwdB5Bz4zrcrex92qZClC7/lmuj60wl2+GkaEj8v7q9rwg4fRjW8xKX2c6QV49YFMjZk8wE9OXei/SHYeYwllbrxSYLIIxZDa9GGx6Yp9skVFawcAjs5MFf4SvvBhZtdOYSa5B6qVqO+yijLWbsPWurVjyiF4M8mgfqlnCO0Y+OZqvp9d59a+oph8lAgy5lgqUrR9W5Uhd1y0/Sjg1JoV1BTenmGOLs1g== 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=RRMg/VKnOBUFJtmEMFAbql9Kih/BrDP4alKqg+iJroA=; b=V+lb+ausAqPyF+GBKXGowUsKfoVyJ2ObIxj2dJdHJnSUhhx5WY9QBoMsmI2vq9afy/ngICGuG8qy1tcHjjpTRJ4/PevKx6gvPVBLRy1qDAh9vyTAXNTVExM4ZBRiUj/L4feapu9KyaKd2mVH1Y9Z1cJig27zH3fXYsz2G0t0dQmGLDkTpqsbHg2OyABV350P4KsEO1NL0rGbmD/AeAdvDKlejfp3sHfRglYqobvW+7RvbD4fYefUZWrU+jxfQqO1RV3DSyWcp2auod9aWFZoptV/OdMDFZsXCV5TbUIswa8lnpKkcWlYiEIdBMPd6nkNWSeaYni5PrvbopgR8fNTnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RRMg/VKnOBUFJtmEMFAbql9Kih/BrDP4alKqg+iJroA=; b=TvPoMEO512fMhWkXJ5vfFaOH/9dqVwfws8cF+hTK3svJOg9tyeX71O+qLtDUHupHLa17FAO9q+vCxYR0F+VxKK+gS2VgPzByCbcG7yorfMaQqng1zWaRD6ZEIoOBaPiZXtqMod8XO+O5IfuCiORJhTr//sRT3e+DlhOd5IZt2bw= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by DB7PR08MB3755.eurprd08.prod.outlook.com (2603:10a6:10:77::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Thu, 10 Sep 2020 01:30:40 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::408a:40fb:7402:c805]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::408a:40fb:7402:c805%6]) with mapi id 15.20.3348.019; Thu, 10 Sep 2020 01:30:39 +0000 From: Honnappa Nagarahalli To: Phil Yang , "akozyrev@mellanox.com" , "rasland@mellanox.com" , "dev@dpdk.org" CC: Phil Yang , "matan@mellanox.com" , "shahafs@mellanox.com" , "viacheslavo@mellanox.com" , nd , Honnappa Nagarahalli , nd Thread-Topic: [PATCH v4] net/mlx5: relaxed ordering for multi-packet RQ buffer refcnt Thread-Index: AQHWgZ1xGQ239GmDZkK39b+9nJmmUqlhIGuA Date: Thu, 10 Sep 2020 01:30:39 +0000 Message-ID: References: <1592900807-13289-1-git-send-email-phil.yang@arm.com> <1599101590-4856-1-git-send-email-phil.yang@arm.com> In-Reply-To: <1599101590-4856-1-git-send-email-phil.yang@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 645DA87DFAE75344AB3CF94032F64136.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [107.77.221.39] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 59659647-beff-4cd7-b903-08d8552924ea x-ms-traffictypediagnostic: DB7PR08MB3755:|VI1PR0802MB2383: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 9OhDFy9as7MJOQ8iiKcIBYx42W4KiEPGvT4hRRPdCgQuCioMbkA0f1JuZ+yNGvoz4vsShZqPEy3jVOgLzNqm+7jvg7JPEmv/fF5dyY2/TcGlMbf7jdlqZKB+1Dpew8Ksyyz8yEZRmSqJg/GyCN5VG4tjKTBiortr8DWvz2jHqaOH3G4nG72Z2QxMDffBwb4xhJ+UB34gJ6ZiGdf8XdIJRctv1P5LyJcpP98/zfd53eQygTlCYEcRlBh05E8EB8HTVQC1dlWl59nGpaT5hrb/Jh7sf0BXJlfqjmjY0VYDN2FwVYSr9UYQM0bhYzFNeYs7L3IkgjHFO+LRIE44fAuvWQeDnfusterwc41XTkcMgfi5e2ibHLGqRv4qe2KrRV/ZjfXKs5SCO8c40+Cuo9R9BA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(136003)(39860400002)(376002)(346002)(26005)(2906002)(186003)(6506007)(110136005)(54906003)(478600001)(9686003)(86362001)(55016002)(4326008)(8676002)(966005)(8936002)(33656002)(66556008)(64756008)(66946007)(76116006)(66446008)(66476007)(7696005)(52536014)(5660300002)(316002)(71200400001)(83380400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: ptrfEF0nCcRIc6ZfXvAb8ALM6RV2aLbZ6UkvX4YGWOhtvSBXVnB2gXRcATQgwSnaL5cozaPtzq4dG4IQkYFw1DPSB1T2FaWkrBwIrfI5WKzneDewtz+pyk2FyMbXtG7S9SaADCqG/niyD/SNiceq4ElvJ72FLhjZCeJmMgYAknlc7NLREGor+w+1+M/o5QQC9aH1YRMtdemA3OfgThwpeXkwHYrmm2dOm+34Vdl2oqHCaLKPceuH4YZ/sjPMB0ak636cC4HpsIu6Z4hDxlwZOsTn50oRLiVtbp1osMUDYuKgoVGdLvoKTiuXNv8Pk+EeixiOqGKNz5XfGukaw5agJfjzOYiFrPDSNLsqMPmYGKuBISEbo2xHLOg7t3p4M4v8uLNtIIvh3NbBpZf3b9WgBsWl1fC/W6+62fEAAQZZ1vAmpxewvbZCa4K7OTRIgeCqPf5/y/O1mWc+EyVjLVlWkUZ5wum3fqYetAIWM/BgqDThJoQc6/DKdvj54Ov6TsN7yMCW0F0orxSRJ2OW2O5XB8PSHg2po675+T2vaRYyVCqkhvWgkeM+bRynE06bi68vbyxN6pyVBQ595YvqtxFlhFw63zwZASOlO76eVzoEp5M04kwvErqkZ9sp7treRgWL6UKO6OuTvholaIGnIiFgpw== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3755 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 00eb5a48-26b1-4fa7-c688-08d85529207a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dlLxVlYNYcN2FLyy5IXYFx/JCprGW4JEdhjANqJi2YLGeScbH3i62PuaG9av8p78h4vBET2IfX4wuDtPmAkWUAIK0jHPhTVkZYWHtvJEzCh8kK4h6s7WV7hP2Miz++oTX+guiTLZmiQ2j8J/xMH2qT972N/7u4MbufQBYKj0GqtL77KNyJgDWzTb7YEBkngJne4xY6Jme3tbAmygV7sb6Q28uZ7e2fxHH0tJIswncx3ULJrjPjObqx52ZaMAFFfvnuWKwAaIuSWpQSdv4fEkmu+1u8jPMo54Wf2aDpVfdxq6jJiB6wtDX+LuQ4fg86AB2elMhK7n3FWriv8y0BMtTpLVxYO8SYTCiGRondCD0/XS+59loVXLHNUcB9srYHn0BC4ANKQV6fjIFkNZHbDaXatMnsl9vh0r8QUfPlZ/iwXNErtSsC2GId2Js4ZhAeXMiszWvpohNtcZ0FAiQNwtZtYV/u9B3DqxDhxyLaDVtgM= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(136003)(376002)(39860400002)(346002)(396003)(46966005)(356005)(82310400003)(26005)(33656002)(336012)(8676002)(186003)(52536014)(81166007)(9686003)(55016002)(86362001)(478600001)(7696005)(83380400001)(54906003)(82740400003)(4326008)(70586007)(70206006)(36906005)(966005)(6506007)(316002)(110136005)(2906002)(47076004)(5660300002)(8936002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2020 01:30:47.3708 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 59659647-beff-4cd7-b903-08d8552924ea X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2383 Subject: Re: [dpdk-dev] [PATCH v4] net/mlx5: relaxed ordering for multi-packet RQ buffer refcnt 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" >=20 > Use c11 atomics with RELAXED ordering instead of the rte_atomic ops which > enforce unnecessary barriers on aarch64. >=20 > Signed-off-by: Phil Yang Looks good. Reviewed-by: Honnappa Nagarahalli > --- > v4: > Remove the unnecessary ACQUIRE barrier in rx burst path. (Honnappa) >=20 > v3: > Split from the patchset: > http://patchwork.dpdk.org/cover/68159/ >=20 > drivers/net/mlx5/mlx5_rxq.c | 2 +- > drivers/net/mlx5/mlx5_rxtx.c | 16 +++++++++------- > drivers/net/mlx5/mlx5_rxtx.h | 2 +- > 3 files changed, 11 insertions(+), 9 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c in= dex > 79eb8f8..40e0239 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -2012,7 +2012,7 @@ mlx5_mprq_buf_init(struct rte_mempool *mp, > void *opaque_arg, >=20 > memset(_m, 0, sizeof(*buf)); > buf->mp =3D mp; > - rte_atomic16_set(&buf->refcnt, 1); > + __atomic_store_n(&buf->refcnt, 1, __ATOMIC_RELAXED); > for (j =3D 0; j !=3D strd_n; ++j) { > shinfo =3D &buf->shinfos[j]; > shinfo->free_cb =3D mlx5_mprq_buf_free_cb; diff --git > a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c index > 1b71e94..549477b 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.c > +++ b/drivers/net/mlx5/mlx5_rxtx.c > @@ -1626,10 +1626,11 @@ mlx5_mprq_buf_free_cb(void *addr > __rte_unused, void *opaque) { > struct mlx5_mprq_buf *buf =3D opaque; >=20 > - if (rte_atomic16_read(&buf->refcnt) =3D=3D 1) { > + if (__atomic_load_n(&buf->refcnt, __ATOMIC_RELAXED) =3D=3D 1) { > rte_mempool_put(buf->mp, buf); > - } else if (rte_atomic16_add_return(&buf->refcnt, -1) =3D=3D 0) { > - rte_atomic16_set(&buf->refcnt, 1); > + } else if (unlikely(__atomic_sub_fetch(&buf->refcnt, 1, > + __ATOMIC_RELAXED) =3D=3D 0)) { > + __atomic_store_n(&buf->refcnt, 1, __ATOMIC_RELAXED); > rte_mempool_put(buf->mp, buf); > } > } > @@ -1709,7 +1710,8 @@ mlx5_rx_burst_mprq(void *dpdk_rxq, struct > rte_mbuf **pkts, uint16_t pkts_n) >=20 > if (consumed_strd =3D=3D strd_n) { > /* Replace WQE only if the buffer is still in use. */ > - if (rte_atomic16_read(&buf->refcnt) > 1) { > + if (__atomic_load_n(&buf->refcnt, > + __ATOMIC_RELAXED) > 1) { > mprq_buf_replace(rxq, rq_ci & wq_mask, > strd_n); > /* Release the old buffer. */ > mlx5_mprq_buf_free(buf); > @@ -1821,9 +1823,9 @@ mlx5_rx_burst_mprq(void *dpdk_rxq, struct > rte_mbuf **pkts, uint16_t pkts_n) > void *buf_addr; >=20 > /* Increment the refcnt of the whole chunk. */ > - rte_atomic16_add_return(&buf->refcnt, 1); > - MLX5_ASSERT((uint16_t)rte_atomic16_read(&buf- > >refcnt) <=3D > - strd_n + 1); > + __atomic_add_fetch(&buf->refcnt, 1, > __ATOMIC_RELAXED); > + MLX5_ASSERT(__atomic_load_n(&buf->refcnt, > + __ATOMIC_RELAXED) <=3D strd_n + 1); > buf_addr =3D RTE_PTR_SUB(addr, > RTE_PKTMBUF_HEADROOM); > /* > * MLX5 device doesn't use iova but it is necessary in > a diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.= h > index c02a007..467f31d 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.h > +++ b/drivers/net/mlx5/mlx5_rxtx.h > @@ -68,7 +68,7 @@ struct rxq_zip { > /* Multi-Packet RQ buffer header. */ > struct mlx5_mprq_buf { > struct rte_mempool *mp; > - rte_atomic16_t refcnt; /* Atomically accessed refcnt. */ > + uint16_t refcnt; /* Atomically accessed refcnt. */ > uint8_t pad[RTE_PKTMBUF_HEADROOM]; /* Headroom for the first > packet. */ > struct rte_mbuf_ext_shared_info shinfos[]; > /* > -- > 2.7.4