From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9237FA0A01 for ; Tue, 5 Jan 2021 08:39:41 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 835C61607D2; Tue, 5 Jan 2021 08:39:41 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60077.outbound.protection.outlook.com [40.107.6.77]) by mails.dpdk.org (Postfix) with ESMTP id 2EE491607C8; Tue, 5 Jan 2021 08:39:39 +0100 (CET) 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=VVix9GaPVXjY39S8QpUWVPGMMnEVqC7wTj3UDiSBukU=; b=pvh+R1NwaHkf5HZVhXQdMLl221FgiCp1CQk16lXas7nUksSvOaWnAH7c/AoVwBdIn9KNft50DFNushM0Dsde12EF24aXgE3lWkm2YUSZq+LpemjYUcTMcq9UtbvPuWvatu01hjJj7wkMtw8L/8nh2Kp3p6rLHg9i8OZWjz492Fk= Received: from DB8PR03CA0032.eurprd03.prod.outlook.com (2603:10a6:10:be::45) by PR3PR08MB5692.eurprd08.prod.outlook.com (2603:10a6:102:8a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.21; Tue, 5 Jan 2021 07:39:37 +0000 Received: from DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:be:cafe::c0) by DB8PR03CA0032.outlook.office365.com (2603:10a6:10:be::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.19 via Frontend Transport; Tue, 5 Jan 2021 07:39:37 +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=pass 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 DB5EUR03FT061.mail.protection.outlook.com (10.152.21.234) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.21 via Frontend Transport; Tue, 5 Jan 2021 07:39:37 +0000 Received: ("Tessian outbound 6af064f543d4:v71"); Tue, 05 Jan 2021 07:39:37 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0f28b034841a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 56673EA9-6F50-4A0B-9BF5-9FF000153889.1; Tue, 05 Jan 2021 07:39:30 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0f28b034841a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 05 Jan 2021 07:39:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ed0LWZDxWHuaTY9tr4BCJW5SrRTvCK8kcfWmd4KP59FPXdaWpnQm56AfnifTnAt480OGnDzBwUPBKw9yjUrjcwZPDzBUnydRq7ebB1yBNYuI/XIqOm7rohbwgttc1K34f0zGPXGGexFVnVu3kBR8H6QaGQ6L+CXAAyef6l2YvaWgVVx66H6MN5c/JS0xNhDftV+3qzdDsLb6knzND3hBtj2QsHLeLEUGx+N6oSxsxxnKwUw4xRS1M5DgLl/MsTDCr5Jp5olzM9xZLYOfVsGHSVpMAC/Rn9jz38WlqaBJVCD9nru7ZH8CouT/o+0ZSiJw3XMd49NtksViyUDLa4KnYg== 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=VVix9GaPVXjY39S8QpUWVPGMMnEVqC7wTj3UDiSBukU=; b=oIsMCU33jLxFM8gZNcrF9TQMX+1lhWB8Y6YrmWKydjL7JFAaygJs0SZiSpFo1OcoGGwUTVmEQzmY4kfz9pASuxVWQhVpYSzL/vMID37ecbb6a+9LZip/l/Kn+whwK5+Gwp+p1CM7pexoSqDhOs3ajxTy8KYkLRFagEKp7n2mzT1DOTJ4uGSKM8JShKSIvgz+9mdJk8+9LdeCOiPNX1ZEfco3z2ihcBJH74j14/rKVp9oS9GtTTQwiYlYZMzW6TPzZgRMZxQq/VRM/PlaXKWtQ7BIxDY0eXMAIPjy8574ncD0Tp9j2mA2bOGrozfGeYn+8BF4zSvkdYz+BpZLcjUPjA== 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=VVix9GaPVXjY39S8QpUWVPGMMnEVqC7wTj3UDiSBukU=; b=pvh+R1NwaHkf5HZVhXQdMLl221FgiCp1CQk16lXas7nUksSvOaWnAH7c/AoVwBdIn9KNft50DFNushM0Dsde12EF24aXgE3lWkm2YUSZq+LpemjYUcTMcq9UtbvPuWvatu01hjJj7wkMtw8L/8nh2Kp3p6rLHg9i8OZWjz492Fk= Received: from DBBPR08MB4411.eurprd08.prod.outlook.com (2603:10a6:10:cb::17) by DBBPR08MB4760.eurprd08.prod.outlook.com (2603:10a6:10:f6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3721.20; Tue, 5 Jan 2021 07:39:26 +0000 Received: from DBBPR08MB4411.eurprd08.prod.outlook.com ([fe80::19c2:8f5f:aabb:16fc]) by DBBPR08MB4411.eurprd08.prod.outlook.com ([fe80::19c2:8f5f:aabb:16fc%7]) with mapi id 15.20.3721.024; Tue, 5 Jan 2021 07:39:26 +0000 From: Feifei Wang To: Pavan Nikhilesh Bhagavatula , "jerinj@marvell.com" , Harry van Haaren CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , "stable@dpdk.org" , Ruifeng Wang , nd Thread-Topic: [RFC PATCH v1 4/6] app/eventdev: add release barriers for pipeline test Thread-Index: AdbYTEUe8OVHSkoHRIaSsOPrfVwqLgK45xmg Date: Tue, 5 Jan 2021 07:39:26 +0000 Message-ID: References: In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: BD44C980643CEB4F82C20AF81F85B357.0 x-checkrecipientchecked: true Authentication-Results-Original: marvell.com; dkim=none (message not signed) header.d=none;marvell.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 15984b1f-3916-46ac-fd24-08d8b14d0deb x-ms-traffictypediagnostic: DBBPR08MB4760:|PR3PR08MB5692: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr 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: Jg9i8CxfwPSvuOGzTXZ2fK4/2RRPNBdqZs3TpQszJyBRiurhfOFO8UKE+No6hChSMi39qXlI5CEuFHee2amlsXjOmN1OOMCYcS1gxGAEkehKutk2QbfwaM6HoA8SwdJYCU+Qc5zicQFhpY1jscwue2KxBqnzFx4opxpqRzHYvhaSHZILhh5FGuEo2AEWDuARVmXu2CNf45wKYihq29TSFc9fcOjgU4UddRRe+NYoJp5R9w3ZDwoWrNMQdHRW5uy2EX1xPM9aH+M55Z5vlo4Y3gEBg9NBJZ+GnyvnTmpX/rQhP1ERfNe7eqf+nco9dU2mYIi1Zk2lKkpjXLrQJcfwjWhG0j1iIUBQ0tgX6mBQyAMKZGpAfL6T/bH4OOV2PhiVFseeLTqpDCi5YRPxm3vlag== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4411.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(376002)(396003)(136003)(39860400002)(8936002)(7696005)(6506007)(53546011)(26005)(33656002)(54906003)(71200400001)(478600001)(83380400001)(316002)(8676002)(4326008)(9686003)(5660300002)(66446008)(186003)(86362001)(2906002)(110136005)(76116006)(64756008)(55016002)(66476007)(66556008)(66946007)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-2022-jp?B?alhhSzlhcGIzeU9jcUEzeXQzZmdGRGZGeTBadFpDZlFqVzZ0VWJNSnBt?= =?iso-2022-jp?B?UjhNUWE5VjJxV3hndEFJblhvZGtBRVJBWndwYTBMam5nNzlObjBiVjIw?= =?iso-2022-jp?B?VzRaOEpiTnJ5V05nR0NjNXBMYzBCV2o4ZzZaODkzK0J5aE50akFOL2w0?= =?iso-2022-jp?B?eGtkQlEzTlQrSEZMNVliZUxRMklxMGwzdFdadU1wOE9GdzR0SllyYmFE?= =?iso-2022-jp?B?NXd4cXE0Tm1LUCtCM0hNRjRqOVlOYW13M014eFlVYVIzK3JBV0o5UFVt?= =?iso-2022-jp?B?eFE1RkVLZEdVdVdCMmxLK3pPa1JyeS82RTEzMjFTcnJ1R0krZ3hDNDFq?= =?iso-2022-jp?B?bVcrc3AwclgzVXhuRElna3dyRUpoVFVub283TDg3VWtFdnloU1NXUW9h?= =?iso-2022-jp?B?d2JOa3VOZjBVNklwRGN2b2Y1NVFCMDU1S2c3cTAvUjNOZkRGWW1EWXBD?= =?iso-2022-jp?B?MlAycjlubFdUZW1JR1ZqMXVINDZESnJDUFFvbGNYUzRSNFJPcUpGOGRy?= =?iso-2022-jp?B?elV5QTZNamhtTjM0eXhwYmpwTkxDZHZBdW9pZ3pBTVpyQWVLYzdDK1ZG?= =?iso-2022-jp?B?UE5sVjQydTc4bzh6KzhtUHVQYkxrVmlxc3UxRG1nQThxN0ZoR1lRb2VN?= =?iso-2022-jp?B?L0NSOFlYU085b3FUMGRGZlN3eVkrQ0ZOM1QvSFFVTE1XYVRMV1JKVjNn?= =?iso-2022-jp?B?cWdLYVFaTlQ5SHE1NDYzLy9takNIYmlTdHVjdFg5ajh2bDNsOVkzam5y?= =?iso-2022-jp?B?di9ZREpDRHA4MTV0SmlxZkRhNUpLNkNXZ3NENWxlL2VMTng4S2Qxdzd5?= =?iso-2022-jp?B?Q0NTQmV1UEdVbnNVREU4aEFmZmljaGUySjJDV2VoQk1FYmJkcG5BcDlE?= =?iso-2022-jp?B?Y0NlK1ZnbVJZR2ZIbUUzVzE1V1l0RXFQSnBiT0lmK3UxdVAvbUxaZnlD?= =?iso-2022-jp?B?MmtSUGlTTDBCVnpMb2RFdEFCM29Ib0tZWWhNRDJkcXc5N3VGZi9rRU1J?= =?iso-2022-jp?B?emJ0S1Eya0M0QTRNTnN0K2FRb0l5eWRhSmg1aUwwM2hpM01lMHdRa2sx?= =?iso-2022-jp?B?OTZHbnRuMjNOM2pJUGRmVXFja2lzdHJXRmo4Yjc2bkI2YVpCWEpBSi8x?= =?iso-2022-jp?B?Q01abytEd3JINS85b0JQWmNLUmZUVDRLVTdnY1NGY1ZkYUEzczBlS1Vo?= =?iso-2022-jp?B?Zy9NK3UveFFaQmtsZTNydjN3clY5UUtHSHAvZkc1LzZpeDRBUVhDSkdx?= =?iso-2022-jp?B?eWhYWEZpUU1MQXVraXllWHlURlBFZzJ6cnN5K3Q4TmpBQTl2TXVlMjZQ?= =?iso-2022-jp?B?THJqR1ZXaENzM2FZY2pyaUNCdkVlUFlhQ2ZxMGZRdmJEdG9uSkVGc2s0?= =?iso-2022-jp?B?c3duUzVGSG00Ymx0YzRwd201a1ZoOXhCSDZBdzdxT3JEc0pIdz0=?= Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4760 Original-Authentication-Results: marvell.com; dkim=none (message not signed) header.d=none;marvell.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 6e42d1ea-e925-47c5-bf6b-08d8b14d0765 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IUgA1XBxT4TPeZVZ0oeUu8gJ95mWixf/kBS3yUCzmzLFWrn4K9WCPYnABldMAYelcWww+zZHwL+qD/LhIA4Pp3vbFGVvVy+ouZiUVHgMWL0l+izTypihkiuHi0Em8ZYkpPHVGCxJTJiy+swtG5eCUbSkDuZRVMiwyYwJgdhU4qhBPuV5P4vcBwP2ONzx/1IZGejCMSn1ondv4JfqlsofDHk+Wv0T6Qw20x+ckuXqoxij6Zpc35hKsE3LD517NMLCkVz5AQnz7t4s+g5ffUI0DbnUQntwETPMRQO4uD59n8bkMECBV2i9eY/kk/gH+Pq5TKQCnrS5GHSZp2um9PhJZHFksuo92R8+UclmvYxW+yQrpBvA6FwZ0fgMWhYA8SNaCKEJcpOsc9Af5zZokEGwilm3hwk7LU79X/YnGExPq63Dz52yI5FPBu++Ne/9Vgx5Cy2I6i8EskczaQ61guNvzQ== 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)(396003)(346002)(376002)(39860400002)(46966006)(5660300002)(33656002)(7696005)(4326008)(8936002)(52536014)(2906002)(86362001)(83380400001)(356005)(8676002)(478600001)(110136005)(47076005)(70206006)(336012)(186003)(316002)(82740400003)(82310400003)(54906003)(26005)(55016002)(53546011)(6506007)(81166007)(450100002)(9686003)(70586007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2021 07:39:37.6992 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 15984b1f-3916-46ac-fd24-08d8b14d0deb 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: DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5692 Subject: Re: [dpdk-stable] [RFC PATCH v1 4/6] app/eventdev: add release barriers for pipeline test X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, Pavan Sorry for my late reply and thanks very much for your review. > -----Original Message----- > From: Pavan Nikhilesh Bhagavatula > Sent: 2020=1B$BG/=1B(B12=1B$B7n=1B(B22=1B$BF|=1B(B 18:33 > To: Feifei Wang ; jerinj@marvell.com; Harry van > Haaren ; Pavan Nikhilesh > > Cc: dev@dpdk.org; nd ; Honnappa Nagarahalli > ; stable@dpdk.org; Phil Yang > > Subject: RE: [RFC PATCH v1 4/6] app/eventdev: add release barriers for > pipeline test >=20 >=20 > >Add release barriers before updating the processed packets for worker > >lcores to ensure the worker lcore has really finished data processing > >and then it can update the processed packets number. > > >=20 > I believe we can live with minor inaccuracies in stats being presented as > atomics are pretty heavy when scheduler is limited to burst size as 1. >=20 > One option is to move it before a pipeline operation (pipeline_event_tx, > pipeline_fwd_event etc.) as they imply implicit release barrier (as all t= he > changes done to the event should be visible to the next core). If I understand correctly, your meaning is that move release barriers befor= e pipeline_event_tx or pipeline_fwd_event. This can ensure the event has been processed before the next core begins to tx/fwd. For example: if (ev.sched_type =3D=3D RTE_SCHED_TYPE_ATOMIC) { + __atomic_thread_fence(__ATOMIC_RELEASE);=20 pipeline_event_tx(dev, port, &ev); w->processed_pkts++; } else { ev.queue_id++; + __atomic_thread_fence(__ATOMIC_RELEASE); pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); pipeline_event_enqueue(dev, port, &ev); However, there are two reasons to prevent this: First, compare with other tests in app/eventdev, for example, the eventdev = perf test, the wmb is after event operation to ensure operation has been finished and = then w->processed_pkts++. So, if we move release barriers before tx/fwd, it may cause that the tests = of app/eventdev become inconsistent.This may reduce the maintainability of the code and ma= ke it difficult to understand. Second, it is a test case, though heavy thread may cause performance degrad= ation, it can ensure that the operation process and the test result are correct. And maybe for a test= case, correctness is more important than performance. So, due to two reasons above, I'm ambivalent about how we should do in the = next step.=20 Best Regards Feifei > >Fixes: 314bcf58ca8f ("app/eventdev: add pipeline queue worker > >functions") > >Cc: pbhagavatula@marvell.com > >Cc: stable@dpdk.org > > > >Signed-off-by: Phil Yang > >Signed-off-by: Feifei Wang > >Reviewed-by: Ruifeng Wang > >--- > > app/test-eventdev/test_pipeline_queue.c | 64 > >+++++++++++++++++++++---- > > 1 file changed, 56 insertions(+), 8 deletions(-) > > > >diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test- > >eventdev/test_pipeline_queue.c index 7bebac34f..0c0ec0ceb 100644 > >--- a/app/test-eventdev/test_pipeline_queue.c > >+++ b/app/test-eventdev/test_pipeline_queue.c > >@@ -30,7 +30,13 @@ pipeline_queue_worker_single_stage_tx(void > >*arg) > > > > if (ev.sched_type =3D=3D RTE_SCHED_TYPE_ATOMIC) { > > pipeline_event_tx(dev, port, &ev); > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored operation > >+ * of the event completes before the number of > >+ * processed pkts is visible to the main core > >+ */ > >+ __atomic_fetch_add(&(w->processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > } else { > > ev.queue_id++; > > pipeline_fwd_event(&ev, > >RTE_SCHED_TYPE_ATOMIC); > >@@ -59,7 +65,13 @@ pipeline_queue_worker_single_stage_fwd(void > >*arg) > > rte_event_eth_tx_adapter_txq_set(ev.mbuf, 0); > > pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); > > pipeline_event_enqueue(dev, port, &ev); > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored operation > >+ * of the event completes before the number of > >+ * processed pkts is visible to the main core > >+ */ > >+ __atomic_fetch_add(&(w->processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > } > > > > return 0; > >@@ -84,7 +96,13 @@ > >pipeline_queue_worker_single_stage_burst_tx(void *arg) > > if (ev[i].sched_type =3D=3D > >RTE_SCHED_TYPE_ATOMIC) { > > pipeline_event_tx(dev, port, &ev[i]); > > ev[i].op =3D RTE_EVENT_OP_RELEASE; > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored > >operation > >+ * of the event completes before the > >number of > >+ * processed pkts is visible to the main > >core > >+ */ > >+ __atomic_fetch_add(&(w- > >>processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > } else { > > ev[i].queue_id++; > > pipeline_fwd_event(&ev[i], > >@@ -121,7 +139,13 @@ > >pipeline_queue_worker_single_stage_burst_fwd(void *arg) > > } > > > > pipeline_event_enqueue_burst(dev, port, ev, nb_rx); > >- w->processed_pkts +=3D nb_rx; > >+ > >+ /* release barrier here ensures stored operation > >+ * of the event completes before the number of > >+ * processed pkts is visible to the main core > >+ */ > >+ __atomic_fetch_add(&(w->processed_pkts), nb_rx, > >+ __ATOMIC_RELEASE); > > } > > > > return 0; > >@@ -146,7 +170,13 @@ pipeline_queue_worker_multi_stage_tx(void > >*arg) > > > > if (ev.queue_id =3D=3D tx_queue[ev.mbuf->port]) { > > pipeline_event_tx(dev, port, &ev); > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored operation > >+ * of the event completes before the number of > >+ * processed pkts is visible to the main core > >+ */ > >+ __atomic_fetch_add(&(w->processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > continue; > > } > > > >@@ -180,7 +210,13 @@ > >pipeline_queue_worker_multi_stage_fwd(void *arg) > > ev.queue_id =3D tx_queue[ev.mbuf->port]; > > rte_event_eth_tx_adapter_txq_set(ev.mbuf, 0); > > pipeline_fwd_event(&ev, > >RTE_SCHED_TYPE_ATOMIC); > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored operation > >+ * of the event completes before the number of > >+ * processed pkts is visible to the main core > >+ */ > >+ __atomic_fetch_add(&(w->processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > } else { > > ev.queue_id++; > > pipeline_fwd_event(&ev, > >sched_type_list[cq_id]); > >@@ -214,7 +250,13 @@ > >pipeline_queue_worker_multi_stage_burst_tx(void *arg) > > if (ev[i].queue_id =3D=3D tx_queue[ev[i].mbuf- > >>port]) { > > pipeline_event_tx(dev, port, &ev[i]); > > ev[i].op =3D RTE_EVENT_OP_RELEASE; > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored > >operation > >+ * of the event completes before the > >number of > >+ * processed pkts is visible to the main > >core > >+ */ > >+ __atomic_fetch_add(&(w- > >>processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > continue; > > } > > > >@@ -254,7 +296,13 @@ > >pipeline_queue_worker_multi_stage_burst_fwd(void *arg) > > > > rte_event_eth_tx_adapter_txq_set(ev[i].mbuf, 0); > > pipeline_fwd_event(&ev[i], > > > > RTE_SCHED_TYPE_ATOMIC); > >- w->processed_pkts++; > >+ > >+ /* release barrier here ensures stored > >operation > >+ * of the event completes before the > >number of > >+ * processed pkts is visible to the main > >core > >+ */ > >+ __atomic_fetch_add(&(w- > >>processed_pkts), 1, > >+ __ATOMIC_RELEASE); > > } else { > > ev[i].queue_id++; > > pipeline_fwd_event(&ev[i], > >-- > >2.17.1