From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DDB2343B51; Tue, 20 Feb 2024 03:02:14 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AFB8F402B8; Tue, 20 Feb 2024 03:02:14 +0100 (CET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2041.outbound.protection.outlook.com [40.107.22.41]) by mails.dpdk.org (Postfix) with ESMTP id 3639E4029B for ; Tue, 20 Feb 2024 03:02:12 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KC7KQpYVbBt0LvRauG/fNtkxBpBLhvRqKPMyp+QVgQ7wgvB4TK//Aohj0vjaeD8ES7lsg5JakSrHbqxBawdsqZkpbuRODAP3tYo6cJ0BjIQOYU5qRC+cI7+Ix5ciPrmZeIog84tR8cUb+FdRE3/n7cIZEwXwfpqNhIFrsw2xxt8AyWK3JMkfaH0ugsWdA24YcJPwmngQQOZEavpsP2CjacImpEuPbmgGK6N2IAU2WkrnFgKeSGZWSQQP5C1warsV+C+N6uZTgm0+dehwu0M3dL+qMZae4KBJdEI1lHhTl4L4onPURZ6m2ugoh0qvTgiNp+DcnnnW588ej5n1KvvRnQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=kUetn3wD5fSbJjTzLzlCNdqQK5n5OWFefT9Ye65kCdE=; b=hfpRDIFG3gKMVT4O9U8xZlQWELG/qhlf3jfWNnl4AgahqyBxKRE3krt9aJ0vOUdt86x/99LVuqOGWc3dPBjYDWR2JvAKS8gDgneHYJk3DC5g3zoec3CSqx8leKkw1CGbrzjMDP2agZaoQW2aK/7jQBVa2VPZCCY2W9BwtNrrcTIywho+pl6pGi2jJ37o3owz/4XkkUbyzES9QKDOYcT+urGZcFfDgh5k0iIL5N8Y+QRGb8mIPZ5Zv8StBCoJyQT83UFasXaj2DxKWOYycyo/hrBMeF879FiB7Gf8zWr6gIUnpgVLidc1rX6yAlaDHo9QE8KGCPF03SPxhgMZ82zcBQ== 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=kUetn3wD5fSbJjTzLzlCNdqQK5n5OWFefT9Ye65kCdE=; b=wYFinCQghtmfle1cG0u5qhgDU1MEGgl5Ozza1lBrmlAQof8RjER02vnCtjmCW2DMVIZswIVlaZlFJrCzOzDT3zYVJYXxinKFe6dNO+av4VAUorxb5M7QIXV2F6aQdKaa9cLZMbj1zII8WZdINge+ar/qVjkvglUYNQjXnkTOmP0= Received: from AM0PR08MB5073.eurprd08.prod.outlook.com (2603:10a6:208:15c::27) by AS8PR08MB6679.eurprd08.prod.outlook.com (2603:10a6:20b:393::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Tue, 20 Feb 2024 02:02:08 +0000 Received: from AM0PR08MB5073.eurprd08.prod.outlook.com ([fe80::4313:26fc:de38:10d8]) by AM0PR08MB5073.eurprd08.prod.outlook.com ([fe80::4313:26fc:de38:10d8%3]) with mapi id 15.20.7292.036; Tue, 20 Feb 2024 02:02:08 +0000 From: Wathsala Wathawana Vithanage To: Wathsala Wathawana Vithanage , Andrew Boyer , "dev@dpdk.org" CC: Neel Patel , nd , Honnappa Nagarahalli , nd Subject: RE: [PATCH 2/3] net/ionic: remove duplicate barriers Thread-Topic: [PATCH 2/3] net/ionic: remove duplicate barriers Thread-Index: AQHaYPq1WtLonrxY+UezAfKOcmelFrESNdxQgABBbqA= Date: Tue, 20 Feb 2024 02:02:08 +0000 Message-ID: References: <20240216170704.55523-1-andrew.boyer@amd.com> <20240216170704.55523-3-andrew.boyer@amd.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 64EB927BA0D5834488ADF2E60792403A.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM0PR08MB5073:EE_|AS8PR08MB6679:EE_ x-ms-office365-filtering-correlation-id: 09b28abf-5ba8-40d5-a231-08dc31b7f19e nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VFzFgoG72ET8icZN8PNQMn8pEKjGDeo+RvqMURpwGZHigTrtvc43gKxCfcJTiBr1YxD15njmH/62avENSD78c4Qy3JKQg7qcNhcJEZl7Ny43TOd64P5BmPe0i2tjHJUCV0uwlNIu4Qzf8HIkYais/6MlHdLYPVn/ielXPFrhcIryfFD7UyhZPSyam5fu+Rrk/8hKgI07zOMxvyZs4JIJ0qB4I/4J5LH2UkdPtDJtbVCBfwEkhBS2iPrEN1Vr1bGcmXpeFAJ9yH+6e/ZMMNdKbMpYwlUJmvY7AIeJxfqDrxBBvWrmV7DHNvvmrKOowLjTbkipdekjciqnvr8LZFm3/otOHlXXg3qOkAqgxzFkwtCL6zXoFe1SVHjaZfN5c2H3lcgYkBa8K9eIVVf8rNF+IoQZafniiagUQtAWXb6UYK9FSxMJcF0UKuAwigiEs8WqUDrFlFaM7+Fk+gMVjAX713JMqOTEgTZHnTF0RF20ZyhUtg3BzC2d1F6uECmYvSac6bgJt8kJeA7qLeK/h22tla+gD8a3PmIh56QdrLgU+cYF4AzvZ71fhlyHLlCenZL6FoPuxE3539bN9JYsQ5G51tHC6t97OdUyJYhJ11B9aJkp66Ree5oNyphNu2lSvKz3 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB5073.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?+gvMlXVOQIhS1nFu6Q2j3ocGp6lIg5rjG1YWSZ5TbmM5+DKopGYqjnYQHz95?= =?us-ascii?Q?hHLVPp5pVtKfR3Sq2mw2eAdxmWcF8PYQYVzJ3kWrCs52SzDDyycytJBTWIQQ?= =?us-ascii?Q?H1biOSn7Fu63IMr1YajYU1uZI3dKqQIquBx90wJ2m6incZIB6ocFnJ2Ja3sj?= =?us-ascii?Q?k41JkLBitLS5SDdeI1TPyW9TvjcNojgiwjhA5mUDCM4OchkarQ28gShBelZE?= =?us-ascii?Q?DluVx17HEPQJkCuGKFv7gLJQiU2diRc/X/EJBqQ7COeNW44IcIbrMit3Kmme?= =?us-ascii?Q?8/GjBeC5GxyRtw5REZCXVGWhZfbpViO9NDSeVO5ZlMwMxund3AWsK7BepIta?= =?us-ascii?Q?rjO82HAwQubWE1eE8Xp2UH3OuJSa2k7PRlxOtnh8DFRqWFu7vGzMF0iotWyi?= =?us-ascii?Q?ZKgtRmNcLP8M61PTTW27s56u/0g0tVM8rT54VE4/Lkq6V6modzFoXfrFNheU?= =?us-ascii?Q?XHNLSO5ObU6F/Nba/XtuaYRjs3nh0u74RriLYd9uBr0UBoK1bQ2wSDJVVuCa?= =?us-ascii?Q?93us9JbbYw0fQm5UbwSqm3GKYZdZihUQuU6qC3ebukqsrmEr7cGjFSJLvQX9?= =?us-ascii?Q?p6KdOWFss2dZiuMrmON815Y+b98VcGYcS5AHIEJKzrnDvhZj+5b/vxxmOcvM?= =?us-ascii?Q?3XSsgLevlKuOmKhlof7DYoSp94m1AESHlgbaciS6oG/h7G8xmUNp0jiX3B1m?= =?us-ascii?Q?nvw6aQdehgG1B6EW1mH/NxPzoCwOVxuGKeDnGcSAikTTlszP75fW6Ch+B9VW?= =?us-ascii?Q?fUb3dome3SmQk/CvPszsKe+20eMCH4kGqpLcwCbiPHJzX3DVEZ1YswVV8LyP?= =?us-ascii?Q?+7d13KDLmzUIzx0Z7smiey+n5zorZdL1UJSrdXm5miQhKUVasEPD1JROEwC/?= =?us-ascii?Q?D0saZn4h36fH2yWhwLpyzIIZXoaGxpSMaLHKPqdXTUKgeowAOclmWHNIBgk5?= =?us-ascii?Q?MyTapprW5mM0rWSn060CSY8h5HqXFoc7cROi1d6liju6ZqetxMDSVJg3y0y/?= =?us-ascii?Q?U9uHlJ74UbLmHbTAbflEStlBR2sJmC1QlDS63Yld0x+vbL/F+qwSGCrVfbp7?= =?us-ascii?Q?goFx01UdBf6DPtbWI89WBmJS6e5AntCNeJbZQN0ye5bCOoTpmsBAvI50Zolp?= =?us-ascii?Q?hhiBlYw86yjctjXvbfOiQ1RnbxzTWvaEfWE+ZWhi2Zi14+jARlgun3W9XuKE?= =?us-ascii?Q?SR/sA224WwfSbZ81KMqSDKWF+JgXSIJHzi8Ipk2HoNOBKqrPNzKGJYlDnRpc?= =?us-ascii?Q?Vs//4O6P6mNg6geRuy+q9E03Lzk9hNtrf9byRanvYQYoUNl+HyLChnVhvU92?= =?us-ascii?Q?zrz0SYV05vrtGr23TslrwdMtGP6OYdK8egANuqXnixCTk010XuBvjB0vmvp7?= =?us-ascii?Q?mOw7yILzcgYcKYqgJjfayJavG/DTwFB0bHBa6fDVRy28dh/OKOjNYWyybrpP?= =?us-ascii?Q?8HVVjcLWAK9KzmjVssp3RMYQWn19A7aAWUAWW2bg3TcnLDGuIS8cabBVT75Z?= =?us-ascii?Q?rRVC83ZHDUyZcY5gxZSoHu5OaG0ttVS6bwSsMJUIvx7vYluQWCjoeQ1jm3fz?= =?us-ascii?Q?kcisKHEp1EBaNEOzlaGkSr5GJi0kMV03Z32oshYo?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM0PR08MB5073.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09b28abf-5ba8-40d5-a231-08dc31b7f19e X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Feb 2024 02:02:08.2150 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4oofgEO1tRRT+hYFafnaH9t4E2BiQ7WktGxu5sz71KlVeLEchACwgVUBbDI7qYMRWxP7MxaoK8JD9PTFa4Hm2RXlsp7gQw6NVtBhbW4Yw0A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6679 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Wathsala Wathawana Vithanage > Sent: Monday, February 19, 2024 4:17 PM > To: Andrew Boyer ; dev@dpdk.org > Cc: Neel Patel ; nd ; Honnappa > Nagarahalli ; nd > Subject: RE: [PATCH 2/3] net/ionic: remove duplicate barriers >=20 > Hi Andrew, >=20 > I think that this barrier may have been added to ensure any writes to q- > >hw_index and q->head_idx complete before ionic_q_flush computes val. > Dependency chains can also prevent reordering if that's the case this bar= rier is > not required. > However, I have the following concern. >=20 > > diff --git a/drivers/net/ionic/ionic_main.c > > b/drivers/net/ionic/ionic_main.c index 1f24f64a33..814bb3b8f4 100644 > > --- a/drivers/net/ionic/ionic_main.c > > +++ b/drivers/net/ionic/ionic_main.c > > @@ -223,7 +223,6 @@ ionic_adminq_post(struct ionic_lif *lif, struct > > ionic_admin_ctx *ctx) > > q->head_idx =3D Q_NEXT_TO_POST(q, 1); > > > > /* Ring doorbell */ > > - rte_wmb(); > > ionic_q_flush(q); > > > > err_out: >=20 > Ionic_q_flush(q) uses q->hw_index and q->head_idx to compute the value of > val which it writes to the address stored in q->db. I can see that q->hea= d_idx is > updated before the removed rte_wmb(), therefore it's safe to assume that = " q- > >head_idx =3D Q_NEXT_TO_POST(q, 1)" and "val =3D IONIC_DBELL_QID(q- > >hw_index) | q->head_idx" will maintain the program order due to that > dependency. But I don't know if there exists a dependency chain over q- > >hw_index. If not, then that may have been the motive behind this barrier= . >=20 Since q->hw_index is also updated in the same CPU ionic_q_flush will always see the correct value, consequently val should be always correct.=20 It's safe to remove this barrier. > > diff --git a/drivers/net/ionic/ionic_rxtx_sg.c > > b/drivers/net/ionic/ionic_rxtx_sg.c > > index e8dec99c04..3820fd850f 100644 > > --- a/drivers/net/ionic/ionic_rxtx_sg.c > > +++ b/drivers/net/ionic/ionic_rxtx_sg.c > > @@ -218,7 +218,6 @@ ionic_xmit_pkts_sg(void *tx_queue, struct > rte_mbuf > > **tx_pkts, > > } > > > > if (nb_tx > 0) { > > - rte_wmb(); > > ionic_txq_flush(q); > > > > txq->last_wdog_cycles =3D rte_get_timer_cycles(); diff --git > > a/drivers/net/ionic/ionic_rxtx_simple.c > > b/drivers/net/ionic/ionic_rxtx_simple.c > > index 9674b4d1df..4c9b9415ad 100644 > > --- a/drivers/net/ionic/ionic_rxtx_simple.c > > +++ b/drivers/net/ionic/ionic_rxtx_simple.c > > @@ -191,7 +191,6 @@ ionic_xmit_pkts(void *tx_queue, struct rte_mbuf > > **tx_pkts, > > } > > > > if (nb_tx > 0) { > > - rte_wmb(); > > ionic_txq_flush(q); > > > > txq->last_wdog_cycles =3D rte_get_timer_cycles(); > > -- > > 2.17.1