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 5AD14A0C41; Wed, 17 Nov 2021 15:07:58 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EDFF1410E9; Wed, 17 Nov 2021 15:07:57 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2073.outbound.protection.outlook.com [40.107.236.73]) by mails.dpdk.org (Postfix) with ESMTP id C2BE240687 for ; Wed, 17 Nov 2021 15:07:56 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RUU4vnhqUEDMBaYmxNzryPzmlNanY3+y5DMYsv4SQ2kU9buQIRrjKAvyp1Cow99vtqT/9+/b1bdQDMpa69G3ghsKmrtylp7WhisDrDeibQmNfC/bi0c8liNUUNdihkYBUGvm0FPS6BE8yFpRa/A0Ldd65jbl2WQzz5HODtGw7fNFlFtK2Gj8UvqkY13IQ6iTvskD35mDcYbFbHcASk9D2/W8ARvaNSi7LznyjfZYpo0NJrovrNjP32E2FKQ59SaLCIc0nBzB5ZvRRwRU92lPBkh5NgLHPZ/Z9iIFf53AYScHSkxsI/w+vkYqZUK4y2qy95PcHPfph/SaRNAMpJGjmA== 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=uCwQTBKVWbLdQF5SlSRv22xEstV+LwgOOVovhxB0G6o=; b=FEn5TvE8mTJjZYlk81Ho27UaLytM1q/Io5ie65nmVroJUGYjQklI/MjMyaCsqrfRed6SN/GQ3N3kudfBCx2IGf2tbWUWL0gDiS60maMp8LrHHLVciXyLbNvgSxGIT+Iu3YMDwaiXsqJfBxFQp61SuWWLvIDecDvljSp0zIXKYqDw3y+KYPR4dDd0PXep11ug4ExP4xw/kl4irXeohSoKlaMzchEcXdZuLLHB6uRYdNiCI5/FBbwji8ZV9nITRzNrubsx58Fc3FD1IEdGJsUL5WBF5bstidUDRLkEPLxIO+hlEi0jW3O6tX0vFO8hkwna/J6sGWhFXiQtCAb/h69ghQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uCwQTBKVWbLdQF5SlSRv22xEstV+LwgOOVovhxB0G6o=; b=Ry+kLnV+X87OI2bLqeX/WMHRIadoGFBDVrCfz4VSwhXNUycOIow5R43h8NBYfUBMdnLV0Un50Em0zVwLiN8Qs7Z+SUFooy8waqNMgXRwXYiuAEmCg9sOu+GzX8XuKMsig7RR8fZpqXYiAL81eJqlhzA0tWQefxVPjAyhxAs8HZ+l9aRxJNuZnIzWXW3+HSoeAMB54gNjCGQhFT5r6yua3XY5extj/pLdNt12oiE93opf9vUjz9UUljZ8Jf9f/H5D7qauKBSVJys3p0fww86QvV6AP3Hik+1ZaxSnOuyok7TrjE96uriz/+q6XgcVQvm4AavKKtLG0ug+gK/feOQDYA== Received: from DM6PR12MB4107.namprd12.prod.outlook.com (2603:10b6:5:218::7) by DM5PR1201MB2538.namprd12.prod.outlook.com (2603:10b6:3:de::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Wed, 17 Nov 2021 14:07:54 +0000 Received: from DM6PR12MB4107.namprd12.prod.outlook.com ([fe80::98ea:e961:8212:62f4]) by DM6PR12MB4107.namprd12.prod.outlook.com ([fe80::98ea:e961:8212:62f4%7]) with mapi id 15.20.4713.021; Wed, 17 Nov 2021 14:07:54 +0000 From: Elena Agostini To: Jerin Jacob CC: "Ananyev, Konstantin" , "Yigit, Ferruh" , "Richardson, Bruce" , Stephen Hemminger , "dev@dpdk.org" Subject: Re: [PATCH v3 1/1] app/testpmd: add GPU memory option for mbuf pools Thread-Topic: [PATCH v3 1/1] app/testpmd: add GPU memory option for mbuf pools Thread-Index: AQHX2xtuLnccivIdaEyRk5cICPLtBqwGrVmAgADi4JqAAATLgIAAAH8ygAABeoCAAATgAIAADV+AgAAAvt6AABDlgIAAAnYkgAAD8ICAAAEyWA== Date: Wed, 17 Nov 2021 14:07:53 +0000 Message-ID: References: <20211029204909.21318-1-eagostini@nvidia.com> <20211117030459.8274-1-eagostini@nvidia.com> <20211117030459.8274-2-eagostini@nvidia.com> <20211116133449.7b7d21d1@hermes.local> <20243569-b7f0-53c5-02c5-ba29734e30c2@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1354677b-de63-4c8f-d470-08d9a9d3a62f x-ms-traffictypediagnostic: DM5PR1201MB2538: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8jK5gJ5LJwoQNsjurnJ99HmEpRU8+xBH7PB7J/VwlmBWSIJqPEEpkw2DLkjC4ZhWTgj4I3vZSuC7vnwm8IxgetCcvhVIerRGexcshF8dWghPNncmMaKkFjeEh0X878n+UdXOEHSuaqi8CF7DEGbip53nWvjSTRtB6aABBDApvFiT5uavV9d8SJDiZcA11fSECBouZGi0fvQQqhfxKG3zT4VyZnam12JmmMxAq3SNsX4D03XYmGAUOE3Bp7ae/dtv0Cv7nvwx8+NmYbIPhvn8HXX7Vsq7ywmYWiQ7ZMNyMxBwCDvvZYSG896sYjKplXLcxQny9/GrFKZhrHWVTEFhkvZq44Bv9yZcsRRzVlZlxuA+PSIepUDyPrAaj+P+87taxlXOpjq1zKVqjfRBbniQeebpqRenMUWRBSC558uv/bW5+fwnZbbo0Z/C2tvR2cqgDIxC2NM7PhIp2Pb40+62rdmnabsP9Y0TBTiFjlVF2V6fUim+tCYr/h+AyEW+VeFCWl8hWIQUcWl70tC+NiqAh0pA3zjactIt5G9hZfE7U7kcjwQqGCH/O/X3bpkTiKcbcuzMQsbQb9i4fqbKvZyCAFPn8ZNtAFAR/0stqoUQKMWhdV02Tjcm8wmUNDaftA1s0sJ9lc70K4HH+KvD53zTJIiOu/EHW8Ai3vKq987EVvwvYp7UqG5v4XJ5KYhmNJkMaMhHYzphvIK44YdzpCGYoA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4107.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(8676002)(54906003)(6506007)(7696005)(316002)(86362001)(83380400001)(52536014)(9686003)(186003)(6916009)(122000001)(66556008)(2906002)(53546011)(4326008)(66476007)(38100700002)(55016002)(64756008)(66446008)(8936002)(38070700005)(76116006)(91956017)(71200400001)(66946007)(5660300002)(33656002)(508600001)(26005)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?+feC7lyIghG5pfzGRcLxueX1ke0OAA4aet/5DOdCGj/Obc2NfRV3GHhT?= =?Windows-1252?Q?fuRJ1pHRBOsf3YotYximUFPwD5muCuxaQS5XMSYt4ZmD0rYfwOZzC4dl?= =?Windows-1252?Q?nuevEVG3tCAgr/TlaM3mL0RjjbnFkqteHhbEnWl1BRXfTwPKLb/lMnK+?= =?Windows-1252?Q?lIZ8wGFDIqk1qLJ6g6ct/mgg9W2l9D5UZEMpq36Vktxi7rIz3msU0PCr?= =?Windows-1252?Q?7UKlgP9IU/Ci9BkxOC8qYJNEA/etun0odsIQ98xu5eIKtMVB8sb1ceeX?= =?Windows-1252?Q?1dbApIDzbGzNpbojaBcABFG1/IAiKQdNiqmVaN8ZNjYbrg6V6HeRlVSW?= =?Windows-1252?Q?fkci2s3i+fHSJZQeAfd3YU0CgpXnC5tERKuKEL0eqZiju8kSFQ4DtEfT?= =?Windows-1252?Q?TDBRyUDyEbpX3KpBsRGtnkEAD++tFHKrcjcoabUxP4IJhY1eQ3ol+wy6?= =?Windows-1252?Q?wFzQUsOyKckDNJpOx03C2+7TB2gZaTZ3n5xVvQEj43nXF3TUHEMSP3nb?= =?Windows-1252?Q?EU64qmQmBsB1iO4i7c1QYsmVg98kkV/vpW4gSMbaGomi/4xRFX7lvjm9?= =?Windows-1252?Q?3DLgM58nEGoewKmKWisHy64aWbc2oPSLzRL0dA7CAoioWJT1qNkUQ2Y1?= =?Windows-1252?Q?qEWMvdNOsO7K8lpoARasXojgYBjy/8GoOoCWx7teoqDdLjih+68mWFMC?= =?Windows-1252?Q?q+BKZj9N0dDGrWHBML1RhNRc4jKkXjEuh8uHEzupj7FcooeY9zWbBP5V?= =?Windows-1252?Q?XIXCQe+3UCFBlBDw36swy3BXwy5tB2NtFBPN+StfGSOZGfAesu28D5wT?= =?Windows-1252?Q?34IQrTKEsioPOYLQ3ceuvMbSTLfrIaRUD8Ivgk6nKIgV/YSbcSZOOfb6?= =?Windows-1252?Q?rwZbanTsl6ExUoUPUh3srmpbrjgfrVgDH4iDxB6bZzlPI+8HYF16T9lc?= =?Windows-1252?Q?bI+FclO+nDZAdOv8/6j02MCGaMK9FCBv2rYTBMrMDLBRWow5cTylEQ8e?= =?Windows-1252?Q?o+tw7abEKvnmx9CQRHuSmBJJ0m7w5vzRNmw7eNGrNr+1ISIECZvMuKfX?= =?Windows-1252?Q?eYaIFgfRNwNqinFPWeJxNlz8gbFkuFKske9lvOS8y5E5F9Wv2HoxPP+U?= =?Windows-1252?Q?/vz0wZKKGa6aIj2pmaPC7bXCB9GVSW9yhpX3rbWx1I/xJ5wXnxNTIXWN?= =?Windows-1252?Q?iom0XVHW36LQav7V5X0b5zgDu6l6UkvKMHSl74nltRAi5evriv1aI2F/?= =?Windows-1252?Q?Ajq+S9LBr5R2Mx5uVP8iprR1q7L2SHnRGwC72AuPP7U/lmsoOCn0HnFI?= =?Windows-1252?Q?npxxgcDRRuyRLxDaD6lzkfyKjAIQIbSOygzZ0YF5eO7fhCXDQ/fpCXcG?= =?Windows-1252?Q?YyUlzGvHO92ardmDhFqXeF8U0HaE7ZL5Xjk/HlhxrAe6PPhoyWvg5vLK?= =?Windows-1252?Q?aqXwEzpQzesChAb1Edea9/3C3Nb68USZ0CfSiuCcgXiVH58CV8WgHPar?= =?Windows-1252?Q?NGMQVhiSr0ZG9OpfjWm18yh62c+uHnpRofYn8VX16Ch5Ti/eu4duXv2n?= =?Windows-1252?Q?WKfx6SKx6nqYRLW4AraWLizYHQjYjuRxH+Mc8qFR++CNXR9F/YMyPN+t?= =?Windows-1252?Q?E2QPnmfJpplEmLUkqp8ZyouOb8WstSafJJPIYlxiK0j4oq0yOCVCiA0y?= =?Windows-1252?Q?BhvyA1QMs2OvFViNe/Y66GYwMWDo3gy5yQ6BTCzf4U6q/RwHn+5QsW8R?= =?Windows-1252?Q?G20WKvF/5wTkbb1eOY0AOJYpD1hVT2w8JbOkARqC?= Content-Type: multipart/alternative; boundary="_000_DM6PR12MB41075C9ABC7C9B3D56FE5519CD9A9DM6PR12MB4107namp_" MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4107.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1354677b-de63-4c8f-d470-08d9a9d3a62f X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2021 14:07:53.9876 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bkOPdiy+85V/sN/p1+4LlT9a6dgpnKmJvE1FZBI/A3zzXioimhgclkz7yFQyrwRvNQY/tLrUsPQacYDe45fOQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB2538 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 --_000_DM6PR12MB41075C9ABC7C9B3D56FE5519CD9A9DM6PR12MB4107namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable > On Wed, Nov 17, 2021 at 7:20 PM Elena Agostini wro= te: > > > > > On Wed, Nov 17, 2021 at 6:09 PM Elena Agostini = wrote: > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>> On Wed, 17 Nov 2021 03:04:59 +0000 > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >>>>>> This patch introduces GPU memory in testpmd through the = gpudev library. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> Testpmd can be used for network benchmarks when using GP= U memory > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> instead of regular CPU memory to send and receive packet= s. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> This option is currently limited to iofwd engine to ensu= re > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> no workload is applied on packets not accessible from th= e CPU. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> The options chose is --mbuf-size so buffer split feature= across > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> different mempools can be enabled. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>>> Signed-off-by: Elena Agostini > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>> Won't this create a hard dependency of test-pmd on gpudev= ? > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>>> I thought gpudev was supposed to be optional > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>>> Sure, let me submit another patch to make it optional > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> Why to add yet another compile time macro everywhere in tes= tpmd and > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> make hard to maintain? > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> Adding iofwd kind of code is very simple to add test/test-g= pudev and > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> all GPU specific options > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> can be added in test-gpudev. It also helps to review the pa= tches as > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> test cases focus on > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >>> each device class. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> Test-gpudev is standalone unit test to ensure gpudev functio= ns work correctly. > > > > > > > > > > > > > > >> > > > > > > > > > > > > > > >> In testpmd instead, there is a connection between gpudev and= the network. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I understand that. We had the same case with eventdev, where = it needs to > > > > > > > > > > > > > > > work with network. Testpmd is already complicated, IMO, we sh= ould > > > > > > > > > > > > > > > focus only ethdev > > > > > > > > > > > > > > > test cases on testpmd, test-gpudev can use ethdev API to enab= le > > > > > > > > > > > > > > > networking requirements for gpudev. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > +1 > > > > > > > > > > > > > > > > > > > > > > > > > > +1 > > > > > > > > > > > > > > > > > > > > > > > > Testpmd already manages different type of memories for mempools. > > > > > > > > > > > > gpudev is just another type of memory, there is nothing more than t= hat. > > > > > > > > > > Let take this example: > > > > > 1) New code changes > > > > > > > > > > app/test-pmd/cmdline.c | 32 +++++++- > > > > > app/test-pmd/config.c | 4 +- > > > > > app/test-pmd/icmpecho.c | 2 +- > > > > > app/test-pmd/meson.build | 2 +- > > > > > app/test-pmd/parameters.c | 15 +++- > > > > > app/test-pmd/testpmd.c | 167 +++++++++++++++++++++++++++++++++++--= - > > > > > app/test-pmd/testpmd.h | 16 +++- > > > > > 7 files changed, 217 insertions(+), 21 deletions(-) > > > > > > > > > > 2) Good amount of code need to go through condition compilation as > > > > > gpudev is optional that make > > > > > testpmd further ugly. > > > > > > > > > > 3) It introduces new memtype, now > > > > > > > > > > +enum mbuf_mem_type { > > > > > + MBUF_MEM_CPU, > > > > > + MBUF_MEM_GPU > > > > > +}; > > > > > > > > > > The question largely, why testpmd need to pollute for this, testpmd, > > > > > we are using for testing ethdev device class. > > > > > All we are saying is to enable this use case in test-gpudev so that i= t > > > > > focuses on GPU specific, Whoever is not > > > > > interested in specific libraries do not even need to review the testp= md patches. > > > > > > > > I understand your point. I don=92t understand why this testpmd patch is= there since Oct 29 but > > > > I'm receiving reviews only few days before rc4 when I have a limited am= ount of time to get new code accepted.> > I understand that pain. Welcome to DPDK, we have all gone through this > review issue one or another way.> > > > > > > > > > I can provide a gpudev + ethdev example by end of today (I'd like to ke= ep test-gpudev as it is to test gpudev API standalone). > > > > Is there any chance this new example will be reviewed and eventually ac= cepted in DPDK 21.11?> > Why a new example? I don't have any issues in updating app/test-gpudev/. Understood. If this can also help to speed up the acceptance process, I=92l= l provide a new patch for app/test-gpudev to introduce ethdev to send and r= eceive packets --_000_DM6PR12MB41075C9ABC7C9B3D56FE5519CD9A9DM6PR12MB4107namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable

> On Wed, Nov 17= , 2021 at 7:20 PM Elena Agostini <eagostini@nvidia.com> wrote:

> >

> > > On W= ed, Nov 17, 2021 at 6:09 PM Elena Agostini <eagostini@nvidia.com> wro= te:

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>> On Wed, 17 Nov 2021 03:04:59 +0000

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>>>>> This patch introduces GPU memory in tes= tpmd through the gpudev library.

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> Testpmd can be used for network benchma= rks when using GPU memory

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> instead of regular CPU memory to send a= nd receive packets.

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> This option is currently limited to iof= wd engine to ensure

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> no workload is applied on packets not a= ccessible from the CPU.

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> The options chose is --mbuf-size so buf= fer split feature across

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> different mempools can be enabled.=

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>> Signed-off-by: Elena Agostini <eagos= tini@nvidia.com>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>> Won't this create a hard dependency of test= -pmd on gpudev?

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>> I thought gpudev was supposed to be optiona= l

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>> Sure, let me submit another patch to make it op= tional

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> Why to add yet another compile time macro everywher= e in testpmd and

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> make hard to maintain?

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> Adding iofwd kind of code is very simple to add tes= t/test-gpudev and

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> all GPU specific options

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> can be added in test-gpudev. It also helps to revie= w the patches as

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> test cases focus on

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>> each device class.

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >> Test-gpudev is standalone unit test to ensure gpudev fu= nctions work correctly.

> >

> > > >=

> >

> > > >= > > >>

> >

> > > >=

> >

> > > >= > > >> In testpmd instead, there is a connection between gpude= v and the network.

> >

> > > >=

> >

> > > >= > > >

> >

> > > >=

> >

> > > >= > > > I understand that. We had the same case with eventdev, wher= e it needs to

> >

> > > >=

> >

> > > >= > > > work with network. Testpmd is already complicated, IMO, we = should

> >

> > > >=

> >

> > > >= > > > focus only ethdev

> >

> > > >=

> >

> > > >= > > > test cases on testpmd, test-gpudev can use ethdev API to en= able

> >

> > > >=

> >

> > > >= > > > networking requirements for gpudev.

> >

> > > >=

> >

> > > >= > > >

> >

> > > >=

> >

> > > >= > >

> >

> > > >=

> >

> > > >= > > +1

> >

> > > >=

> >

> > > >= >

> >

> > > >=

> >

> > > >= > +1

> >

> > > >=

> >

> > > >=

> >

> > > >=

> >

> > > >= Testpmd already manages different type of memories for mempools.

> >

> > > >=

> >

> > > >= gpudev is just another type of memory, there is nothing more than that.

> >

> > >=

> >

> > > Let = take this example:

> >

> > > 1) N= ew code changes

> >

> > >=

> >

> >  >= ; app/test-pmd/cmdline.c    |  32 +++++++-

> >

> > > app/= test-pmd/config.c     |   4 +-

> >

> > > app/= test-pmd/icmpecho.c   |   2 +-

> >

> > > app/= test-pmd/meson.build  |   2 +-

> >

> > > app/= test-pmd/parameters.c |  15 +++-

> >

> > > app/= test-pmd/testpmd.c    | 167 ++++++++++++++++++++++++++++++++= +++---

> >

> > > app/= test-pmd/testpmd.h    |  16 +++-

> >

> > > 7 fi= les changed, 217 insertions(+), 21 deletions(-)

> >

> > >=

> >

> > > 2) G= ood amount of code need to go through condition compilation as

> >

> > > gpud= ev is optional that make

> >

> > > test= pmd further ugly.

> >

> > >=

> >

> > > 3) I= t introduces new memtype, now

> >

> > >=

> >

> > > +enu= m mbuf_mem_type {

> >

> > > + MB= UF_MEM_CPU,

> >

> > > + MB= UF_MEM_GPU

> >

> > > +};<= o:p>

> >

> > >=

> >

> > > The = question largely, why testpmd need to pollute for this, testpmd,=

> >

> > > we a= re using for testing ethdev device class.

> >

> > > All = we are saying is to enable this use case in test-gpudev so that it

> >

> > > focu= ses on GPU specific, Whoever is not

> >

> > > inte= rested in specific libraries do not even need to review the testpmd patches= .

> >

> >

> >

> > I underst= and your point. I don=92t understand why this testpmd patch is there since = Oct 29 but

> >

> > I'm recei= ving reviews only few days before rc4 when I have a limited amount of time = to get new code accepted.>

 

> I understand t= hat pain. Welcome to DPDK, we have all gone through this<= /p>

> review issue o= ne or another way.>

>

 

> >

> >

> >

> > I can pro= vide a gpudev + ethdev example by end of today (I'd like to keep test-gpude= v as it is to test gpudev API standalone).

> >

> > Is there = any chance this new example will be reviewed and eventually accepted in DPD= K 21.11?>

 

> Why a new exam= ple? I don't have any issues in updating app/test-gpudev/.

 

Unde= rstood. If this can also help to speed up the acceptance process, I=92ll pr= ovide a new patch for app/test-gpudev to introduce ethdev to send and recei= ve packets

--_000_DM6PR12MB41075C9ABC7C9B3D56FE5519CD9A9DM6PR12MB4107namp_--