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 23BDB43B4F; Mon, 19 Feb 2024 23:02:34 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A7C9A40275; Mon, 19 Feb 2024 23:02:33 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2089.outbound.protection.outlook.com [40.107.102.89]) by mails.dpdk.org (Postfix) with ESMTP id 5959840263 for ; Mon, 19 Feb 2024 23:02:32 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jAIXdibRkuDHjtbRnNaIc8Hf4LofC2avn8hY31anyRX01K/bn4XNc/FSmvMWDs4KNL3AVrpi3NxErrQMl7s9+y1HtYirB6fY38piwvGrvFJ5fONRi7x53VvYj1kbShJuDTVfwNVXQHMUt3Hf5Y3M4FKZCqBS0K11H9ChG0e3ocr7JKtPOah/pPt0rBKXwCZgj0MLtN3Q1s9W/krAECz1G4FSNX1jmrCtZ88VDz58RoCuUaekNot2VSUpbT4tzeGqQW9dceDpN1pLgYHQf75wXKsNF9Uk7EzuKyrcFcFtX1LD5gmyK/wUo4J/+hViByTFXLqT6nh/qKw+sR2ySHbp4Q== 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=swQGfiUc6ZBqcGBcoHgEMJK3e/g2+h2VhXnjqtr+u48=; b=F8SUB+cnAlCz93BRZ4JRaC7U6S7ZEvjVWA/ZWFzsLurvEYvmSB7UeT1kY7S4dtRAclF61SvXqqBcjpfH4mezA3DuiApVvaXgQRdYA+SGcC8ZqLL0NNvrpzFmF7oZuuYqriXMA9M/G09TCjBwM6tY6YoQA+3SrEsl+PMV/goWF6gw0T5oG22PNY3gdiv2IkXX5gXVAXSqnIfD4HKLhNQWVqFR5jgwW6ANdglbmZhckmbjHHpFJ/z7xjxghdExl1TmYqeQP5kxcNkZeUf1KHeGLsvYH/MgEDTPlJtBHpFpdySc4ZKXk+F5B/nJxmqLlDNeGsvdLzt/s4BLbapowy483A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=swQGfiUc6ZBqcGBcoHgEMJK3e/g2+h2VhXnjqtr+u48=; b=UXUk8aOiX7/qULbSSnuNEvm1F0tKx9FVjb/Bo+pydKSxVoqMazMY/4lMwdqs1tz0JVEkmxD0EdX7IGf7v4kTjFExIvw98+c1LdtOF6v8y6EJIxRV0Xb4alfAB9IaNNlS8xxc1S/lEX1WXo+r+iHSN9PI6w1VR/voUdgXSvM5bvU= Received: from MW6PR12MB8999.namprd12.prod.outlook.com (2603:10b6:303:247::8) by DM6PR12MB5005.namprd12.prod.outlook.com (2603:10b6:5:1be::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.20; Mon, 19 Feb 2024 22:02:23 +0000 Received: from MW6PR12MB8999.namprd12.prod.outlook.com ([fe80::877d:a085:d9bc:2f7d]) by MW6PR12MB8999.namprd12.prod.outlook.com ([fe80::877d:a085:d9bc:2f7d%7]) with mapi id 15.20.7316.016; Mon, 19 Feb 2024 22:02:22 +0000 From: "Boyer, Andrew" To: "Yigit, Ferruh" CC: "Boyer, Andrew" , "dev@dpdk.org" , "Patel, Neel" , "R, Mohamed Shah" , Alfredo Cardigliano Subject: Re: [PATCH 3/3] net/ionic: add vdev support for embedded applications Thread-Topic: [PATCH 3/3] net/ionic: add vdev support for embedded applications Thread-Index: AQHaYPqtAQ7jZsMqq0Gy0tB8QjCZKbERzWkAgABvNgA= Date: Mon, 19 Feb 2024 22:02:22 +0000 Message-ID: <426AD1A5-E6D5-4B9C-8BEF-DA6414B5521F@amd.com> References: <20240216170704.55523-1-andrew.boyer@amd.com> <20240216170704.55523-4-andrew.boyer@amd.com> <18ed6352-d693-4848-80f9-1665f5ef744a@amd.com> In-Reply-To: <18ed6352-d693-4848-80f9-1665f5ef744a@amd.com> 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=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW6PR12MB8999:EE_|DM6PR12MB5005:EE_ x-ms-office365-filtering-correlation-id: 908a6d77-a513-40d2-e5e5-08dc3196734b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8+lOyM4Gj7lFvDlLkqE+gWQ969PoZZKL2WeO+By3d6DCarA+MbgcKrydZBu3bjYTFNhv1isdr7waFFMK9wvxoDMsENou04lVC7+qVH1OWCX6f+A0UtLdLpAeGZ1t/5xrK+Z+JBTsHZvujmtzZEkQ2jZw+QC6250EDcX+4Q5pCtNfHvtKEP6Qhg993/nEfx52GIZpg1vTd5f2r7Mihl5qtZE52G7odq9gYEPmWNrjEnNc70JOU5nV91InvmH2z0+9zBAmU0/c0GJKHbRGcacyLrkk6u9QCpJ9PPX9kYD9OoHq4MiCNZUTXV6rK3LS/xXsJfTFbtQ9QNqILx6PEYHVkFxP24iCcM5a3mPuUqz061M4FrEcBiAeDvCxcGojKyZ/cQ4ZVB0rldam7uE9AaFeX7Xzuxm7g5L8JqfrseHYDuTRaKynZwO/5F6OxznUw1MuaDFaBODjyTq6rBVb6Qd6jMmMgttB7yVbAPwP5Bq8iLKBO0UDsMKMTCYQR2dANwvtmNoYh+qNvhkq5d6jbcoDxuTM1UTLvnqGFR3PWPKIYVpEvBTbvMKtPQdUez791ThoupBJfa7eWgF0UnQgH0Nz7arluS+GaO1f//Yn93PpdaRk8/Cb2ErHe5jPvkzS6d2i x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW6PR12MB8999.namprd12.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?O78HOU3vu777l/C28Uup53rwhugcoKQl35h1JDlPQP+A8F+rm8jx/F97oqA6?= =?us-ascii?Q?STQhs0swnZM79Qrhmv5ipJLBGUuOBOrFBKmJdZTQyiZsfOQx/nF9+MVumU2C?= =?us-ascii?Q?puVvO2srBV9gxM863gzK1IDA27bl3fnCSoB8ujj9m4pIyd+baWrQCt8Yva0W?= =?us-ascii?Q?Da2XU6yM+uMBe9PlA/DNehw8JCexE7O2Wa4O/ievN22UVMVEjfTpvFwFn8AY?= =?us-ascii?Q?UWaRwgeoRRivvUkLakdIVb/h2ekrTo+Ry7TEh4obr7jJXiV2FxUWl0ign96n?= =?us-ascii?Q?9Z6DBASPOHMpEcZ54mNXMKjoTO6Ms/EHIZGdwbBWHUYBTUwHwn+5Kxi8am2b?= =?us-ascii?Q?5xL2Gew1eyYD9S06EO7n4gBbQzhlPKIF4yp+3RF7QVCb/0zi87amBcDbSOMm?= =?us-ascii?Q?aVvJrRy9rXAXPjZWkCGpxDFCdjbg5oleW37Khq6xAahhcFQkOt6KhR5UT13m?= =?us-ascii?Q?oROEGoHpJjYcrlKJYQa0mlDZDTF4J3p2tnC+iCMRo20pV/152DqyH3PYt7sd?= =?us-ascii?Q?qyxmoXo///jwqm8kpujZsE+VklK5zlF3Oa0K0o4KTZsUH2gMdREb/nBiqwX3?= =?us-ascii?Q?rD2hUAIxYNqTgKeIud2HXd0Oy8ScO1M2WJHw1L8Fs/9Qj6BCxCKJeZh5AxRz?= =?us-ascii?Q?Ph/unyZZ/YzRKEeXsGxH4UPFxifOWnv86e1Lb0aQ0knTenqXLB6NElOmTp6V?= =?us-ascii?Q?QS3IIiQpzOd2ksL2cMMQr8TwOxM3tJo4a/I28Hg39NK5FKvKOC2MqFaLdSdn?= =?us-ascii?Q?qaXFgdmAdl4uWW0J7vN7HOG72Ja0WxDp8cDY6xkR+JZ1xPzswPf4bOE2PCmQ?= =?us-ascii?Q?GaXsugTc14o1UKjXVtHEPKm5RuvMYs2QPjA5IpjQQgyzYHCRkM1b1Kmz1m9r?= =?us-ascii?Q?FI35Gakl+uI/jOGnNGkRuwQwbw1wVPj4PTJw2QLAzoYQtLAcCSNe0x8TqkUe?= =?us-ascii?Q?PodjDAKV5oYlRw/mf0ybUJMpL1Dc4uNqoOCmKr6LiexF1xVIrld//ceRRTBu?= =?us-ascii?Q?R29KNN0VUFsFpE927JMdyb6e0OHxArAlu0juyNBFQsEwaaKYzHpAfx+mPEJX?= =?us-ascii?Q?Xx+sia3mutGUEzEv/19iVAmbUkhFYIOa7WQIuad+wACIXd+m7PUKx2vhX7N9?= =?us-ascii?Q?3GgPUZvDEmzpTAs7069CUB4RKjmpxpOZb5KgePawe+OvJZa/LF/G55G1XdsC?= =?us-ascii?Q?aFTrXacZG5jb4UmTyredQHGrXTDOnwOKQIGn0fNGQRpguL83Oxaa5TlfM1Tc?= =?us-ascii?Q?qX18v44kfeTSUsboKNJhqH7fxALjUqh8uWRn1LKcKLorT+T9ZHgIbpoAKYRd?= =?us-ascii?Q?KEJe6CA9oJ35ESiBXxRRVJAl2w/hnxoOeVz/ta+SFJwXxvOM7kxOaaQyAkL4?= =?us-ascii?Q?2nLPkSn5tlmxRLrmp5+05iNpfjMjU9j+69qkWbVo3SsdmpWt5y4MPoUfNn4W?= =?us-ascii?Q?oVvASyUTSjs1Qjmm3tUXsRKp7TB0ZMkp+aW4c9FAt0utFOVjfjsLtb9qfAS7?= =?us-ascii?Q?zzq21Y1iO8KGM14SRiIzNCnk80V2jHKzdk4FFTwuUAp0OqVblSLpR8Y4GPb4?= =?us-ascii?Q?AkV2g4ZmGUy0rbY1zGbJuz4mxTH9SatM4fQ/kX4N?= Content-Type: multipart/alternative; boundary="_000_426AD1A5E6D54B9C8BEFDA6414B5521Famdcom_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW6PR12MB8999.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 908a6d77-a513-40d2-e5e5-08dc3196734b X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2024 22:02:22.8653 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kmjwtVYnXeee/YB6k3v823HscVyKRkNHTuFQqJVzfZH+Y24VeUM4OcOkIbBpMOkO X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB5005 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_426AD1A5E6D54B9C8BEFDA6414B5521Famdcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable On Feb 19, 2024, at 10:24 AM, Yigit, Ferruh wrote: On 2/16/2024 5:07 PM, Andrew Boyer wrote: Add support for running DPDK applications directly on AMD Pensando embedded HW. The platform exposes the device BARs through UIO. The UIO code in the common/ionic library walks the sysfs filesystem to identify the relevant BARs and map them into process memory. The SoCs are named 'Capri' and 'Elba'. The vdev device interface code is located in ionic_dev_vdev.c. Some datapath operations are #ifdef-ed out to save on resources when running in embedded mode. Some controlpath operations are skipped by the ionic_is_embedded() helper function. Before ringing the doorbell, use an ARM 'dsb st' barrier. The normal barrier inside rte_write64() is insufficient on these devices due to a chip errata. Signed-off-by: Andrew Boyer Signed-off-by: Neel Patel Signed-off-by: R Mohamed Shah Signed-off-by: Alfredo Cardigliano <...> +static struct rte_vdev_driver rte_vdev_ionic_pmd =3D { + .probe =3D eth_ionic_vdev_probe, + .remove =3D eth_ionic_vdev_remove, +}; + +RTE_PMD_REGISTER_VDEV(net_ionic, rte_vdev_ionic_pmd); + +static void +vdev_ionic_scan_cb(__rte_unused void *arg) +{ + ionic_uio_scan_mnet_devices(); +} + +RTE_INIT(vdev_ionic_custom_add) +{ + rte_vdev_add_custom_scan(vdev_ionic_scan_cb, NULL); +} Hi Andrew, My understanding is 'rte_vdev_add_custom_scan()' to add a vdev automatically (via rte_devargs_add()) before vdev scan starts. As far as I can see you are not doing this, why callback is added? Why not call 'ionic_uio_scan_mnet_devices()' within the 'eth_ionic_vdev_probe()'? I think you are correct and our scan should be restricted to the vdev_probe= function. Otherwise it will run in all cases, even on irrelevant hardware. Thanks! Andrew --_000_426AD1A5E6D54B9C8BEFDA6414B5521Famdcom_ Content-Type: text/html; charset="us-ascii" Content-ID: <092F4B26307A0E41B44F0B5BBFA96C09@namprd12.prod.outlook.com> Content-Transfer-Encoding: quoted-printable


On Feb 19, 2024, at 10:24 AM, Yigit, Ferruh <Ferruh.Yigit@amd.com&g= t; wrote:

On 2/16/2024 5:07 PM, Andrew Boyer wrote:
Add support for running DPDK applications directly on AMD Pensando
embedded HW. The platform exposes the device BARs through UIO. The
UIO code in the common/ionic library walks the sysfs filesystem
to identify the relevant BARs and map them into process memory.

The SoCs are named 'Capri' and 'Elba'.

The vdev device interface code is located in ionic_dev_vdev.c.

Some datapath operations are #ifdef-ed out to save on resources when
running in embedded mode.

Some controlpath operations are skipped by the ionic_is_embedded()
helper function.

Before ringing the doorbell, use an ARM 'dsb st' barrier. The normal
barrier inside rte_write64() is insufficient on these devices due to
a chip errata.

Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
Signed-off-by: Neel Patel <neel.patel@amd.com>
Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org>

<...= >

+static struct rte_vdev_driver rte_vdev_ionic_pmd =3D {
+ .probe = =3D eth_ionic_vdev_probe,
+ .remove= =3D eth_ionic_vdev_remove,
+};
+
+RTE_PMD_REGISTER_VDEV(net_ionic, rte_vdev_ionic_pmd);
+
+static void
+vdev_ionic_scan_cb(__rte_unused void *arg)
+{
+ ionic_u= io_scan_mnet_devices();
+}
+
+RTE_INIT(vdev_ionic_custom_add)
+{
+ rte_vde= v_add_custom_scan(vdev_ionic_scan_cb, NULL);
+}

Hi Andrew,

My understanding is 'rte_vdev_add_custom_scan()' to add a vdev
automat= ically (via rte_devargs_add()) before vdev scan starts.

As far as I can see you are not doing this, why callback is added?
Why not call 'ionic_uio_scan_mnet_devices()' within the
'eth_io= nic_vdev_probe()'?

I think you are correct and our scan should be restricted to the vdev_= probe function. Otherwise it will run in all cases, even on irrelevant hard= ware.

Thanks!
Andrew

--_000_426AD1A5E6D54B9C8BEFDA6414B5521Famdcom_--