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 E003E42CA0; Tue, 13 Jun 2023 09:34:07 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D04624161A; Tue, 13 Jun 2023 09:34:07 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 7A56041611 for ; Tue, 13 Jun 2023 09:34:06 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35D56Ftn005629; Tue, 13 Jun 2023 00:34:05 -0700 Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2048.outbound.protection.outlook.com [104.47.73.48]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3r6502377y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 13 Jun 2023 00:34:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Jc/Y+bBDZkab6X4N83YmOzaWRSPbNUXFhQ7d1o6mJRV5JFlg1mz5OEUdZ0IYSqcr+d0dRDCpgJlQ3DScG0asVHK4H6FeCr2uJX42hhNH+DQhORvTTPZz2q7k677iU+n/moOhRMNFpgQBPMDSrOx7ts6eu926cqO96pSZkt1/yfMBHR6qp25/ONeWF0uODYKDo4CAMxAWLXenR3S1B5Uq2Frzct9UJbOuz5o2WD1TWFfOsR2XEkeJ3w0C2Ghph1C2pWfpQy5v2O6axfpJtDk0otf9y0KrblAbDeheIBJPMD17x7LoXc+Oeneia5HG6q9O18bC8JZEwTfqUNmkvHVF7A== 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=OYVYol+tlSWrLuSr5cVGTMKGhTWo0px7ZtPufv7lwYI=; b=XN7eA8Txzu0nWoJNleqFlXVcFUrU797RWAagP/iw9a4tRpUiFm2GlxV0fAsdo1Gz8eGNkwKzdbypd13a9oqrUNZD1lRn5tVfDnee0sC9nsarf11sdN7bw4UoQZzzZEvrrTcfGt7xR5ZLuu7+6k0GTL+8kf0GzK9Uve8WOElYX5KhU85KmscPNvg7crXQjpyJU9cZfu7F3p0v8MAqPpejmP9AHCp1+5JSwlcpIRlQmjsPYrPKxjIdIad97PKkEDuCdgm26UHCRF/UmjXIX1LksaFKg4rCLAnLF3Q6eYr84379Fla7qCoHv0BIeC5qb6OmSI2WVqQWk9GKiepTUNNGPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OYVYol+tlSWrLuSr5cVGTMKGhTWo0px7ZtPufv7lwYI=; b=ffkdcMXGIemCeOx9iDTpUTJJJ0YCBqA8BKS0m2IVm6DuNEXJkexujGPGgbdHNLogryTlB9dWOgDPcOS4Ni+lL0J1CLloHBIeJc0tLZT9WIy2sXQp+l3AJOJdKAQEFFmNaaGXqeeHNr+TPSTMG9Drp7OeDojCDgxX96TXHD8zHzc= Received: from SJ0PR18MB5161.namprd18.prod.outlook.com (2603:10b6:a03:438::6) by LV3PR18MB5567.namprd18.prod.outlook.com (2603:10b6:408:1a2::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Tue, 13 Jun 2023 07:34:01 +0000 Received: from SJ0PR18MB5161.namprd18.prod.outlook.com ([fe80::f6c5:d750:1f52:7eb8]) by SJ0PR18MB5161.namprd18.prod.outlook.com ([fe80::f6c5:d750:1f52:7eb8%4]) with mapi id 15.20.6477.028; Tue, 13 Jun 2023 07:34:00 +0000 From: Amit Prakash Shukla To: "Jiang, Cheng1" , "thomas@monjalon.net" , "Richardson, Bruce" , "mb@smartsharesystems.com" , "Xia, Chenbo" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Ding, Xuan" , "Ma, WenwuX" , "Wang, YuanX" , "He, Xingguang" , Jerin Jacob Kollanukkaran , Anoob Joseph Subject: RE: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf application Thread-Topic: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf application Thread-Index: AQHZmepn8Ay2saxq4UmTb0GXDxiflK+CeT9AgARiLgCAAVYsgIAAKvfw Date: Tue, 13 Jun 2023 07:34:00 +0000 Message-ID: References: <20230420072215.19069-1-cheng1.jiang@intel.com> <20230608084355.16209-1-cheng1.jiang@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?iso-8859-1?Q?PG1ldGE+PGF0IG5tPSJib2R5LnR4dCIgcD0iYzpcdXNlcnNcYW1pdHByYW?= =?iso-8859-1?Q?thc2hzXGFwcGRhdGFccm9hbWluZ1wwOWQ4NDliNi0zMmQzLTRhNDAtODVl?= =?iso-8859-1?Q?ZS02Yjg0YmEyOWUzNWJcbXNnc1xtc2ctYTc4MTMxZDEtMDliYy0xMWVlLW?= =?iso-8859-1?Q?I2ZDctY2QyODFjY2U5OGE2XGFtZS10ZXN0XGE3ODEzMWQyLTA5YmMtMTFl?= =?iso-8859-1?Q?ZS1iNmQ3LWNkMjgxY2NlOThhNmJvZHkudHh0IiBzej0iMTQzMzgiIHQ9Ij?= =?iso-8859-1?Q?EzMzMxMTE1MjM3NzQ1MjQ4MCIgaD0iMCtxaG9EdFg2TlBsYmpjS3FycnNB?= =?iso-8859-1?Q?Njh5S3RRPSIgaWQ9IiIgYmw9IjAiIGJvPSIxIiBjaT0iY0FBQUFFUkhVMV?= =?iso-8859-1?Q?JTUlVGTkNnVUFBTjRQQUFEQVZ3NXF5WjNaQWMydlpEWVJNSzQ5emE5a05o?= =?iso-8859-1?Q?RXdyajBaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUhBQUFBQnVEd0FBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQVFFQkFBQUFJN3FUcEFDQUFRQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFKNEFBQUJoQUdRQVpBQnlBR1VBY3dCekFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQU?= =?iso-8859-1?Q?FBbmdBQUFHTUFkUUJ6QUhRQWJ3QnRBRjhBY0FCbEFISUFjd0J2QUc0QUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFB?= =?iso-8859-1?Q?WXdCMUFITUFkQUJ2QUcwQVh3QndBR2dBYndCdUFHVUFiZ0IxQUcwQVlnQm?= =?iso-8859-1?Q?xBSElBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0QUFBQmpBSFVBY3?= =?iso-8859-1?Q?dCMEFHOEFiUUJmQUhNQWN3QnVBRjhBWkFCaEFITUFhQUJmQUhZQU1BQXlB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-refone: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQU?= =?iso-8859-1?Q?FBQUFuZ0FBQUdNQWRRQnpBSFFBYndCdEFGOEFjd0J6QUc0QVh3QnJBR1VB?= =?iso-8859-1?Q?ZVFCM0FHOEFjZ0JrQUhNQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFB?= =?iso-8859-1?Q?QUFZd0IxQUhNQWRBQnZBRzBBWHdCekFITUFiZ0JmQUc0QWJ3QmtBR1VBYk?= =?iso-8859-1?Q?FCcEFHMEFhUUIwQUdVQWNnQmZBSFlBTUFBeUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCakFIVU?= =?iso-8859-1?Q?Fjd0IwQUc4QWJRQmZBSE1BY3dCdUFGOEFjd0J3QUdFQVl3QmxBRjhBZGdB?= =?iso-8859-1?Q?d0FESUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUVBQUFBQUFBQUFBZ0FBQUFBQW5nQUFBR1FBYkFCd0FGOEFj?= =?iso-8859-1?Q?d0JyQUhrQWNBQmxBRjhBWXdCb0FHRUFkQUJmQUcwQVpRQnpBSE1BWVFCbk?= =?iso-8859-1?Q?FHVUFYd0IyQURBQU1nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFRQUFBQUFBQUFBQ0FBQUFBQUNlQUFBQVpBQnNBSEFBWHdCekFHd0FZUU?= =?iso-8859-1?Q?JqQUdzQVh3QmpBR2dBWVFCMEFGOEFiUUJsQUhNQWN3QmhBR2NBWlFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reftwo: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFBQUJrQU?= =?iso-8859-1?Q?d3QWNBQmZBSFFBWlFCaEFHMEFjd0JmQUc4QWJnQmxBR1FBY2dCcEFIWUFa?= =?iso-8859-1?Q?UUJmQUdZQWFRQnNBR1VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHVUFiUUJoQUdr?= =?iso-8859-1?Q?QWJBQmZBR0VBWkFCa0FISUFaUUJ6QUhNQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFOZ0FBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQVFBQUFBQUFBQUFDQUFBQUFBQ2VBQUFBYlFCaEFISUFkZ0JsQUd3QV?= =?iso-8859-1?Q?h3QndBSElBYndCcUFHVUFZd0IwQUY4QWJnQmhBRzBBWlFCekFGOEFZd0J2?= =?iso-8859-1?Q?QUc0QVpnQnBBR1FBWlFCdUFIUUFhUUJoQUd3QVh3QmhBR3dBYndCdUFHVU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQU?= =?iso-8859-1?Q?FBQUFBQUFBSUFBQUFBQUo0QUFBQnRBR0VBY2dCMkFHVUFiQUJmQUhBQWNn?= =?iso-8859-1?Q?QnZBR29BWlFCakFIUUFYd0J1QUdFQWJRQmxBSE1BWHdCeUFHVUFjd0IwQU?= =?iso-8859-1?Q?hJQWFRQmpBSFFBWlFCa0FGOEFZUUJzQUc4QWJnQmxBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFB?= =?iso-8859-1?Q?QWdBQUFBQUFuZ0FBQUcwQVlRQnlBSFlBWlFCc0FGOEFjQUJ5QUc4QWFnQm?= =?iso-8859-1?Q?xBR01BZEFCZkFHNEFZUUJ0QUdVQWN3QmZBSElBWlFCekFIUUFjZ0JwQUdN?= =?iso-8859-1?Q?QWRBQmxBR1FBWHdCb0FHVUFlQUJqQUc4QVpBQmxBSE1BQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQU?= =?iso-8859-1?Q?FDZUFBQUFiUUJoQUhJQWRnQmxBR3dBYkFCZkFHRUFjZ0J0QUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-rorf: true x-dg-refthree: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk?= =?iso-8859-1?Q?FBQUFBQUFBQUFJQUFBQUFBSjRBQUFCdEFHRUFjZ0IyQUdVQWJBQnNBRjhB?= =?iso-8859-1?Q?WndCdkFHOEFad0JzQUdVQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFB?= =?iso-8859-1?Q?QUFBZ0FBQUFBQW5nQUFBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QndBSElBYn?= =?iso-8859-1?Q?dCcUFHVUFZd0IwQUY4QVl3QnZBR1FBWlFCekFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQU?= =?iso-8859-1?Q?FBQUNlQUFBQWJRQmhBSElBZGdCbEFHd0FiQUJmQUhBQWNnQnZBR29BWlFC?= =?iso-8859-1?Q?akFIUUFYd0JqQUc4QVpBQmxBSE1BWHdCa0FHa0FZd0IwQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUFBQUFBQUlBQUFBQUFKNEFB?= =?iso-8859-1?Q?QUJ0QUdFQWNnQjJBR1VBYkFCc0FGOEFjQUJ5QUc4QWFnQmxBR01BZEFCZk?= =?iso-8859-1?Q?FHNEFZUUJ0QUdVQWN3QmZBR01BYndCdUFHWUFhUUJrQUdVQWJnQjBBR2tB?= =?iso-8859-1?Q?WVFCc0FGOEFiUUJoQUhJQWRnQmxBR3dBYkFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFnQUFBQUFBbmdBQUFHMEFZUU?= =?iso-8859-1?Q?J5QUhZQVpRQnNBR3dBWHdCd0FISUFid0JxQUdVQVl3QjBBRjhBYmdCaEFH?= =?iso-8859-1?Q?MEFaUUJ6QUY4QVl3QnZBRzRBWmdCcEFHUUFaUUJ1QUhRQWFRQmhBR3dBWH?= =?iso-8859-1?Q?dCdEFHRUFjZ0IyQUdVQWJBQnNBRjhBYndCeUFGOEFZUUJ5QUcwQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFB?= x-dg-reffour: =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFDQU?= =?iso-8859-1?Q?FBQUFBQ2VBQUFBYlFCaEFISUFkZ0JsQUd3QWJBQmZBSEFBY2dCdkFHb0Fa?= =?iso-8859-1?Q?UUJqQUhRQVh3QnVBR0VBYlFCbEFITUFYd0JqQUc4QWJnQm1BR2tBWkFCbE?= =?iso-8859-1?Q?FHNEFkQUJwQUdFQWJBQmZBRzBBWVFCeUFIWUFaUUJzQUd3QVh3QnZBSElB?= =?iso-8859-1?Q?WHdCbkFHOEFid0JuQUd3QVpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBSUFBQUFBQUo0?= =?iso-8859-1?Q?QUFBQnRBR0VBY2dCMkFHVUFiQUJzQUY4QWNBQnlBRzhBYWdCbEFHTUFkQU?= =?iso-8859-1?Q?JmQUc0QVlRQnRBR1VBY3dCZkFISUFaUUJ6QUhRQWNnQnBBR01BZEFCbEFH?= =?iso-8859-1?Q?UUFYd0J0QUdFQWNnQjJBR1VBYkFCc0FBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQWdBQUFBQUFuZ0FBQUcwQV?= =?iso-8859-1?Q?lRQnlBSFlBWlFCc0FHd0FYd0J3QUhJQWJ3QnFBR1VBWXdCMEFGOEFiZ0Jo?= =?iso-8859-1?Q?QUcwQVpRQnpBRjhBY2dCbEFITUFkQUJ5QUdrQVl3QjBBR1VBWkFCZkFHME?= =?iso-8859-1?Q?FZUUJ5QUhZQVpRQnNBR3dBWHdCdkFISUFYd0JoQUhJQWJRQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBUUFBQUFBQUFBQUNBQUFBQUFDZUFBQUFiUUJoQUhJQWRn?= =?iso-8859-1?Q?QmxBR3dBYkFCZkFIUUFaUUJ5QUcwQWFRQnVBSFVBY3dBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQkFBQUFBQUFBQUFJQUFBQUFBSjRBQUFCdEFHRUFjZ0IyQUdVQWJBQn?= =?iso-8859-1?Q?NBRjhBZHdCdkFISUFaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU?= =?iso-8859-1?Q?FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB?= =?iso-8859-1?Q?QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQU?= =?iso-8859-1?Q?FBQUFBQUFBZ0FBQUFBQSIvPjwvbWV0YT4=3D?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR18MB5161:EE_|LV3PR18MB5567:EE_ x-ms-office365-filtering-correlation-id: d57fd14d-b009-412e-923e-08db6be08e4c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Xaa2cGERSKEXGkAQ9ArCftnngH1Fe6g5/9BQx7IV+iQSAa4zF79t9Do8OYnFxMb3W9Pj0yUKeBs+cdpcRQbLYT4iIu0jFoWZvnEGeGoXH+psdHLbzke2eDkhLogX7/WRrOIqzMjQg27nKZvi+2ybnv3uCYWoCe6P9UlP388Ps+TfUYgHwpBN/lWrUYG3JsbuDQ/pWAv0z/n4G+NgEuLxj7mKJjTcszB0x/I5kKoTtAMoTuBaXUy/Zc69pOGViByhorFM1bRVSRYOypZxuWiyu+U8Snkstmf9M55hRR4S20OUkVjQIlooDc5Vu1leU1CqS22Se0Vz76O7O9qyhAJwipw4jmj3B927jhAEsRwwbTAkTizJkU9SBJKvOZ7bYKR35TgdtNownuirJvKhwz5bnkAszUoNZaPDErMH1xdLh3KcWBTwaMQ2qUy57sDpXIbWZVrzRIH/82FZCN/TMA5wwIamxlsD6QKx4PfrgORo/tksTCX5t7EiABowFwKAg2PdQgh9TMbnvo/iOJCbgqV7jDqNhNFIOUg7VOYDDtN7qXW4abZEOwNJjLjnA6E1d7RcGm+idghS1jluZrXO1RGQXyKhye/1R6GKyo7hT8de5G62wPojoxdYNQZ/dwLdciz0 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR18MB5161.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(376002)(39860400002)(136003)(366004)(396003)(451199021)(30864003)(107886003)(9686003)(53546011)(6506007)(41300700001)(38100700002)(7696005)(66574015)(26005)(83380400001)(186003)(71200400001)(478600001)(54906003)(110136005)(66446008)(64756008)(122000001)(4326008)(316002)(66946007)(55016003)(76116006)(7416002)(66476007)(66556008)(8676002)(52536014)(8936002)(2906002)(5660300002)(38070700005)(86362001)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?jy46jWVKBzh3OkfmNk48jUabatRezy3KF5RfoRILEDohGq0LvZ/hOB77lk?= =?iso-8859-1?Q?OdBjEtRHKsw0OSLw937TsbTY+ZBAPPQiYkahQ8Bp1mSOruFvOR+n3aWUih?= =?iso-8859-1?Q?PUcVaqEeS5zM0pU1lF/g18nYAp7m08qesjm86UmZLsPMj2m3bOFXHfLuQw?= =?iso-8859-1?Q?AD2gzJuGGealrTLjvZruID9pzwRJrtoTfVSj0lGVwYs4M+sNc6+lk31e/E?= =?iso-8859-1?Q?qJNs81MDCsTncg/Y4th/VpXmPDUsi1HLaaubOzfkj6OE6LxNG24pPMiThs?= =?iso-8859-1?Q?VN/+PtaQra7LfXttDRezDPHclbaACBacBwA6jGFqvn57ydzqKI7q+rb15p?= =?iso-8859-1?Q?TktN5f6dhiQxzL7HLlzmJqGIj2PZwSkFzYBZH2Id+HQ/x1RK8BbGQnXEUP?= =?iso-8859-1?Q?4oIggZ5jbQPnWDSY1TNmbBH8MH+ms/TteWb6Dt0nAJA1JYO0+k9oylEUjd?= =?iso-8859-1?Q?38NsmqWZez7jtx8Q20AKAhjhvM8Gx1GlZQUUdd5qdJln1J3GbUb9cvX+Q0?= =?iso-8859-1?Q?9JLbHBUgiD3qZQc4A6mEC8/LRuFl0i19Er00xEyj5f1aux7LxAqATlalEu?= =?iso-8859-1?Q?Tx25Y6QvtwdO6PaS8JoP8hr6iL+tc9XRwem7LtRz0I6xADdIO399yIlHX6?= =?iso-8859-1?Q?AvpypquKN8C1CZyxcI6sENiPVQNPJq3J8NkY3xrewZCXFjiEQAWCECN6UC?= =?iso-8859-1?Q?XWK/sT6fT6ptmiFz8cRPfiQfW1QWfcLGeoECePoOy09T6qpxSc3lyTWR74?= =?iso-8859-1?Q?wOC6Pe5pXbJRlCRfk4vArutBX/MRB8nXuavbl3JViNx8cFhh4wHnbJ2M/Q?= =?iso-8859-1?Q?Bs2C3oRRv2gLlpe2ebcefZmPqHwsESdp19tnEPk8gRMlOzxNqWYmHm8mC4?= =?iso-8859-1?Q?LHtHzIdqNBJ3128fcQGBu5TY+gJ3munFi35DcOhlq7l1va5So75eqJSNON?= =?iso-8859-1?Q?4WrUZUfFnWOZXgEqmOUnn7Ecj5hNSDObA7mUVfrJzhCc1YQxkPsCdINOkT?= =?iso-8859-1?Q?Vwp/tZhdTdNOD2ilg9PRgav4eG0PziFatb/FQjOV+tb0E6zJAWimZJJPMC?= =?iso-8859-1?Q?rLwYBBjHGQbS6PYoNLprL2e+g7QHWd61NMd0Fh2Ft3mi0uMmuAPK4nfacW?= =?iso-8859-1?Q?869G59PUgniIzT3o1q9jIXx/XJSEVsxtNJzGfhhbvR3ohLXwNQox2MdyEj?= =?iso-8859-1?Q?yqWXgJXEc09FvMAqDz8WJQM0A6qbJ7D39ImSyTLHu9EB30LC/VxRl1hsIa?= =?iso-8859-1?Q?+X1tw22noSVevhQzNvcbpp2if9R+cyWa8pIBOvQoK90q94ErUgHC2cjUke?= =?iso-8859-1?Q?vNX9OOzyqJFWBC5pfjpg4SeXHqYA6b8IXR0sZtWFGHQWpTxXaSchwbKtwA?= =?iso-8859-1?Q?rsMh1668Yag0uf5NF/uikyW8c+9J9nAIGMtN7xyLWTANkGdOHAemtpOx1c?= =?iso-8859-1?Q?x1ta8EgtRs/Zw96+2By3Ayt74v6OLPekCSmO9Faub5YrGdwcxtve2BxfpD?= =?iso-8859-1?Q?pCJsszcQcHtuLn1DMMZS6j2o+ShuBzBg7/Vk+GT9V9vwvoBzA+yXKnXHC9?= =?iso-8859-1?Q?XDwhS0VsVLo9p9IEDj49CUboV28qDRHX2CO2bpxQ/mPpoIzhRVcl1jPW42?= =?iso-8859-1?Q?xwtrzGdAEEQQJGYHc4rIZUIZBNy/Cf8HTg?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR18MB5161.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d57fd14d-b009-412e-923e-08db6be08e4c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2023 07:34:00.7280 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: F7NI+IeiWkqU72J3lUNXHrFJu8eP5lkTDCSDtr4hGnIA14S0wnrqpmw3nTsJDFPD4UMvAooY50U0OBGWV8VCok+TQNLIOS0zVq1tPt0uWiE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR18MB5567 X-Proofpoint-ORIG-GUID: JUvKpVAaI4ICrcZRgzWuj6j0SBbVK5wW X-Proofpoint-GUID: JUvKpVAaI4ICrcZRgzWuj6j0SBbVK5wW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-13_04,2023-06-12_02,2023-05-22_02 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 Hi Cheng, My replies are inline. Thanks, Amit Shukla > -----Original Message----- > From: Jiang, Cheng1 > Sent: Tuesday, June 13, 2023 10:21 AM > To: Amit Prakash Shukla ; > thomas@monjalon.net; Richardson, Bruce ; > mb@smartsharesystems.com; Xia, Chenbo > Cc: dev@dpdk.org; Hu, Jiayu ; Ding, Xuan > ; Ma, WenwuX ; Wang, > YuanX ; He, Xingguang ; > Jerin Jacob Kollanukkaran ; Anoob Joseph > > Subject: RE: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf applicatio= n >=20 > Hi, >=20 > Replies are inline. >=20 > > -----Original Message----- > > From: Jiang, Cheng1 > > Sent: Monday, June 12, 2023 4:27 PM > > To: Amit Prakash Shukla ; > > thomas@monjalon.net; Richardson, Bruce ; > > mb@smartsharesystems.com; Xia, Chenbo > > Cc: dev@dpdk.org; Hu, Jiayu ; Ding, Xuan > > ; Ma, WenwuX ; Wang, > YuanX > > ; He, Xingguang ; > Jerin > > Jacob Kollanukkaran ; Anoob Joseph > > > > Subject: RE: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf > > application > > > > Hi, > > > > Thanks for your comments, replies are inline. > > > > Thanks, > > Cheng > > > > > -----Original Message----- > > > From: Amit Prakash Shukla > > > Sent: Friday, June 9, 2023 10:03 PM > > > To: Jiang, Cheng1 ; thomas@monjalon.net; > > > Richardson, Bruce ; > > > mb@smartsharesystems.com; Xia, Chenbo > > > Cc: dev@dpdk.org; Hu, Jiayu ; Ding, Xuan > > > ; Ma, WenwuX ; Wang, > > YuanX > > > ; He, Xingguang ; > > > Jerin Jacob Kollanukkaran ; Anoob Joseph > > > > > > Subject: RE: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf > > > application > > > > > > > > > > > > > -----Original Message----- > > > > From: Cheng Jiang > > > > Sent: Thursday, June 8, 2023 2:14 PM > > > > To: thomas@monjalon.net; bruce.richardson@intel.com; > > > > mb@smartsharesystems.com; chenbo.xia@intel.com > > > > Cc: dev@dpdk.org; jiayu.hu@intel.com; xuan.ding@intel.com; > > > > wenwux.ma@intel.com; yuanx.wang@intel.com; > > xingguang.he@intel.com; > > > > Cheng Jiang > > > > Subject: [EXT] [PATCH v5] app/dma-perf: introduce dma-perf > > > > application > > > > > > > > External Email > > > > > > > > ------------------------------------------------------------------ > > > > -- > > > > -- There are many high-performance DMA devices supported in DPDK > > > > now, > > > and > > > > these DMA devices can also be integrated into other modules of > > > > DPDK as accelerators, such as Vhost. Before integrating DMA into > > > > applications, developers need to know the performance of these DMA > > > > devices in various scenarios and the performance of CPUs in the > > > > same scenario, such as different buffer lengths. Only in this way > > > > can we know the target performance of the application accelerated > > > > by using them. This patch introduces a high-performance testing > > > > tool, which supports comparing the performance of CPU and DMA in > > > > different scenarios automatically with a pre- set config file. > > > > Memory Copy performance test > > > are supported for now. > > > > > > > > Signed-off-by: Cheng Jiang > > > > Signed-off-by: Jiayu Hu > > > > Signed-off-by: Yuan Wang > > > > Acked-by: Morten Br=F8rup > > > > Acked-by: Chenbo Xia > > > > --- > > > > v5: > > > > fixed some LONG_LINE warnings; > > > > v4: > > > > fixed inaccuracy of the memory footprint display; > > > > v3: > > > > fixed some typos; > > > > v2: > > > > added lcore/dmadev designation; > > > > added error case process; > > > > removed worker_threads parameter from config.ini; > > > > improved the logs; > > > > improved config file; > > > > > > > > app/meson.build | 1 + > > > > app/test-dma-perf/benchmark.c | 472 > ++++++++++++++++++++++++++++ > > > > app/test-dma-perf/config.ini | 59 ++++ > > > > app/test-dma-perf/main.c | 569 > > > > ++++++++++++++++++++++++++++++++++ > > > > app/test-dma-perf/main.h | 69 +++++ > > > > app/test-dma-perf/meson.build | 17 + > > > > 6 files changed, 1187 insertions(+) create mode 100644 > > > > app/test-dma-perf/benchmark.c create mode > > > 100644 > > > > app/test-dma-perf/config.ini create mode 100644 app/test-dma- > > > > perf/main.c create mode 100644 app/test-dma-perf/main.h create > > > > mode > > > > 100644 app/test-dma-perf/meson.build > > > > > > > > > > > > > > > > > + > > > > +static inline int > > > > +do_dma_mem_copy(void *p) > > > > +{ > > > > + uint16_t *para_idx =3D (uint16_t *)p; > > > > + volatile struct lcore_params *para =3D worker_params[*para_idx]; > > > > + volatile struct worker_info *worker_info =3D &(para->worker_info)= ; > > > > + uint16_t dev_id =3D para->dev_id; > > > > + uint32_t nr_buf =3D para->nr_buf; > > > > + uint16_t kick_batch =3D para->kick_batch; > > > > + uint32_t buf_size =3D para->buf_size; > > > > + struct rte_mbuf **srcs =3D para->srcs; > > > > + struct rte_mbuf **dsts =3D para->dsts; > > > > + int64_t async_cnt =3D 0; > > > > + int nr_cpl =3D 0; > > > > + uint32_t i; > > > > + uint32_t poll_cnt =3D 0; > > > > + > > > > + worker_info->stop_flag =3D false; > > > > + worker_info->ready_flag =3D true; > > > > + > > > > + while (!worker_info->start_flag) > > > > + ; > > > > + > > > > + while (1) { > > > > + for (i =3D 0; i < nr_buf; i++) { > > > > + if (unlikely(rte_dma_copy(dev_id, > > > > + 0, > > > > + rte_pktmbuf_iova(srcs[i]), > > > > + rte_pktmbuf_iova(dsts[i]), > > > > + buf_size, > > > > + 0) < 0)) { > > > > + rte_dma_submit(dev_id, 0); > > > > + while (rte_dma_burst_capacity(dev_id, 0) =3D=3D > > > > 0) { > > > > + nr_cpl =3D rte_dma_completed(dev_id, > > > > 0, MAX_DMA_CPL_NB, > > > > + NULL, NULL); > > > > + async_cnt -=3D nr_cpl; > > > > + worker_info->total_cpl +=3D nr_cpl; > > > > + } > > > > + if (rte_dma_copy(dev_id, > > > > + 0, > > > > + rte_pktmbuf_iova(srcs[i]), > > > > + rte_pktmbuf_iova(dsts[i]), > > > > + buf_size, > > > > + 0) < 0) { > > > > + printf("enqueue fail again at %u\n", > > > > i); > > > > + printf("space:%d\n", > > > > rte_dma_burst_capacity(dev_id, 0)); > > > > + rte_exit(EXIT_FAILURE, "DMA > > > > enqueue failed\n"); > > > > > > [Amit]: On all success or failure exits, please call rte_dma_stop > > > and rte_dma_close to exit cleanly. > > > > [Cheng] Got it. Thanks, I'll fix it in the next version. >=20 > [Cheng] Hi, I take a look into it, and find out rte_exit() will call > rte_dma_close(), so I think there is no need to do it explicitly here. Wh= at do > you think? [Amit]: I agree, not required to explicitly call rte_dma_close here. >=20 > > > > > > > > > + } > > > > + } > > > > + async_cnt++; > > > > + > > > > + if ((async_cnt % kick_batch) =3D=3D 0) { > > > > + rte_dma_submit(dev_id, 0); > > > > + /* add a poll to avoid ring full */ > > > > + nr_cpl =3D rte_dma_completed(dev_id, 0, > > > > MAX_DMA_CPL_NB, NULL, NULL); > > > > + async_cnt -=3D nr_cpl; > > > > + worker_info->total_cpl +=3D nr_cpl; > > > > + } > > > > + } > > > > + > > > > + if (worker_info->stop_flag) > > > > + break; > > > > + } > > > > + > > > > + rte_dma_submit(dev_id, 0); > > > > + while ((async_cnt > 0) && (poll_cnt++ < POLL_MAX)) { > > > > + nr_cpl =3D rte_dma_completed(dev_id, 0, > > > > MAX_DMA_CPL_NB, NULL, NULL); > > > > + async_cnt -=3D nr_cpl; > > > > + } > > > > + > > > > + return 0; > > > > +} > > > > + > > > > > > > > > > > > > + > > > > +void > > > > +mem_copy_benchmark(struct test_configure *cfg, bool is_dma) { > > > > + uint16_t i; > > > > + uint32_t offset; > > > > + unsigned int lcore_id =3D 0; > > > > + struct rte_mbuf **srcs =3D NULL, **dsts =3D NULL; > > > > + struct lcore_dma_map_t *ldm =3D &cfg->lcore_dma_map; > > > > + unsigned int buf_size =3D cfg->buf_size.cur; > > > > + uint16_t kick_batch =3D cfg->kick_batch.cur; > > > > + uint32_t nr_buf =3D cfg->nr_buf =3D (cfg->mem_size.cur * 1024 * > > > > +1024) / > > > > (cfg->buf_size.cur * 2); > > > > + uint16_t nb_workers =3D ldm->cnt; > > > > + uint16_t test_secs =3D cfg->test_secs; > > > > + float memory; > > > > + uint32_t avg_cycles =3D 0; > > > > + float mops; > > > > + float bandwidth; > > > > + > > > > + if (setup_memory_env(cfg, &srcs, &dsts) < 0) > > > > + goto out; > > > > + > > > > + if (is_dma) > > > > + if (config_dmadevs(cfg) < 0) > > > > + goto out; > > > > + > > > > + if (cfg->cache_flush) { > > > > + cache_flush_buf(srcs, buf_size, nr_buf); > > > > + cache_flush_buf(dsts, buf_size, nr_buf); > > > > + rte_mb(); > > > > + } > > > > + > > > > + printf("Start testing....\n"); > > > > + > > > > + for (i =3D 0; i < nb_workers; i++) { > > > > + lcore_id =3D ldm->lcores[i]; > > > > + offset =3D nr_buf / nb_workers * i; > > > > + > > > > + worker_params[i] =3D rte_malloc(NULL, sizeof(struct > > > > lcore_params), 0); > > > > + if (!worker_params[i]) { > > > > + printf("lcore parameters malloc failure for lcore > > > > %d\n", lcore_id); > > > > + break; > > > > + } > > > > + if (is_dma) { > > > > + worker_params[i]->dma_name =3D ldm- > > > > >dma_names[i]; > > > > + worker_params[i]->dev_id =3D ldm->dma_ids[i]; > > > > + worker_params[i]->kick_batch =3D kick_batch; > > > > + } > > > > + worker_params[i]->worker_id =3D i; > > > > + worker_params[i]->nr_buf =3D (uint32_t)(nr_buf / > > > > nb_workers); > > > > + worker_params[i]->buf_size =3D buf_size; > > > > + worker_params[i]->test_secs =3D test_secs; > > > > + worker_params[i]->srcs =3D srcs + offset; > > > > + worker_params[i]->dsts =3D dsts + offset; > > > > + worker_params[i]->scenario_id =3D cfg->scenario_id; > > > > + worker_params[i]->lcore_id =3D lcore_id; > > > > + > > > > + if (is_dma) > > > > + rte_eal_remote_launch(do_dma_mem_copy, (void > > > > *)(&i), lcore_id); > > > > + else > > > > + rte_eal_remote_launch(do_cpu_mem_copy, (void > > > > *)(&i), lcore_id); > > > > + } > > > > + > > > > + while (1) { > > > > + bool ready =3D true; > > > > + for (i =3D 0; i < nb_workers; i++) { > > > > + if (worker_params[i]->worker_info.ready_flag =3D=3D > > > > false) { > > > > + ready =3D 0; > > > > + break; > > > > + } > > > > + } > > > > + if (ready) > > > > + break; > > > > + } > > > > + > > > > + for (i =3D 0; i < nb_workers; i++) > > > > + worker_params[i]->worker_info.start_flag =3D true; > > > > + > > > > + usleep(TEST_WAIT_U_SECOND); > > > > + for (i =3D 0; i < nb_workers; i++) > > > > + worker_params[i]->worker_info.test_cpl =3D > > > > +worker_params[i]->worker_info.total_cpl; > > > > + > > > > + usleep(test_secs * 1000 * 1000); > > > > + for (i =3D 0; i < nb_workers; i++) > > > > + worker_params[i]->worker_info.test_cpl =3D > > > > worker_params[i]->worker_info.total_cpl - > > > > + worker_params[i]- > > > > >worker_info.test_cpl; > > > > + > > > > + for (i =3D 0; i < nb_workers; i++) > > > > + worker_params[i]->worker_info.stop_flag =3D true; > > > > + > > > > + rte_eal_mp_wait_lcore(); > > > > + > > > > + for (i =3D 0; i < nb_workers; i++) { > > > > + calc_result(buf_size, nr_buf, nb_workers, test_secs, > > > > + worker_params[i]->worker_info.test_cpl, > > > > + &memory, &avg_cycles, &bandwidth, &mops); > > > > + output_result(cfg->scenario_id, worker_params[i]->lcore_id, > > > > + worker_params[i]->dma_name, > > > > avg_cycles, buf_size, > > > > + nr_buf / nb_workers, memory, > > > > bandwidth, mops, is_dma); > > > > + } > > > > + > > > > +out: > > > > + /* free env */ > > > > + if (srcs) > > > > + rte_pktmbuf_free_bulk(srcs, nr_buf); > > > > + if (dsts) > > > > + rte_pktmbuf_free_bulk(dsts, nr_buf); > > > > + > > > > + if (src_pool) > > > > + rte_mempool_free(src_pool); > > > > + if (dst_pool) > > > > + rte_mempool_free(dst_pool); > > > > + > > > > + if (is_dma) { > > > > + for (i =3D 0; i < nb_workers; i++) { > > > > + printf("Stopping dmadev %d\n", ldm->dma_ids[i]); > > > > + rte_dma_stop(ldm->dma_ids[i]); > > > > > > [Amit]: Below rte_dma_stop please call rte_dma_close for clean exit. > > > > > > > [Cheng] Sure, I'll fix it in the next version. >=20 > [Cheng] We are not planning to exit here, we are just going to do the nex= t > test, so we shouldn't call the rte_dma_close(). Just clarify. And when we > finished all the test, we will call the rte_eal_cleanup() which will call= the > rte_dma_close(). Thanks! [Amit]: Sure, thanks. >=20 > > > > > > > > > > > > +#endif /* _MAIN_H_ */ > > > > diff --git a/app/test-dma-perf/meson.build b/app/test-dma- > > > > perf/meson.build new file mode 100644 index 0000000000..bd6c264002 > > > > --- /dev/null > > > > +++ b/app/test-dma-perf/meson.build > > > > @@ -0,0 +1,17 @@ > > > > +# SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2019-2023 > > > > +Intel Corporation > > > > + > > > > +# meson file, for building this app as part of a main DPDK build. > > > > + > > > > +if is_windows > > > > + build =3D false > > > > + reason =3D 'not supported on Windows' > > > > + subdir_done() > > > > +endif > > > > + > > > > +deps +=3D ['dmadev', 'mbuf', 'cfgfile'] > > > > + > > > > +sources =3D files( > > > > + 'main.c', > > > > + 'benchmark.c', > > > > +) > > > > -- > > > > 2.40.1