From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 8CFC345FE6;
	Wed, 29 Jan 2025 01:54:07 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3F4FA4026F;
	Wed, 29 Jan 2025 01:54:07 +0100 (CET)
Received: from CY7PR03CU001.outbound.protection.outlook.com
 (mail-westcentralusazon11022123.outbound.protection.outlook.com
 [40.93.200.123]) by mails.dpdk.org (Postfix) with ESMTP id E55C040268
 for <dev@dpdk.org>; Wed, 29 Jan 2025 01:54:05 +0100 (CET)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=bW0uB0cRJmjLMR46zPSHFtMCATpgedWLVs0zRpy7UXbdDEAqinOIU0xfMsYg/7UK863qMUJZJEVUoWTyMg1FFlf16yFDtJPNVJw32TDCl0OAD+SLMiLUxW136Jh7mfbcFPoW6tLN/VU92tv0cD/SkfJtNpQTJToPUrMhJDZHLZmoUj6nmom6JB1LYXSVg0US/1ntNml8ItILAPENTtiSFdQm27DBfrl9RtKhtFXEEyZNQpTlv2rN2YDwnsbpkQefvw1CGEkaYNyRlel2tJV8kGz8enufsceUP/QbrIfcLnjSwbCPsvX7tx/YCURm0xX909915nb82aghkemlW92AEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=EhKrQ3RfeyqJGWOBrAodvCgPiuPLOAXCkUhx8RJiOw4=;
 b=QCEGlJNk4YgenHPrK1B6OYYYL64ziSZe6uJvEX2YN7XyWQk7BA3/1DbItn0mDglMk6bEIuJ+dQcKce+nAyYtrTAz98guUxNm2rfQ4mi32eKsfOyIJSmz6Shngde4PZXFqd/igVvoQ97+hqxBASoJkMu3eIWheDD2QEbX3uf8gGQySkP1SZLHAcenHWX06E/OEFC96QgD1VrzgitFrUI4I9op6aF1w+Z96Q8JGjJoON8RYNhI0zoKOF+x824qf8HGeDHOO55TTCcjb+kUat1rlpLb4S2r5epe6x9foAAypAIvAGTB8HdaZee6PLsLISHMz1FPbdWxKvM8pmypWz6XBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=EhKrQ3RfeyqJGWOBrAodvCgPiuPLOAXCkUhx8RJiOw4=;
 b=ENnfBcdvSyxnweiD6HH2Qb0+q5quBqkUHnn4Rt9zw7AiLPfnkxgmXfPpkn6sZsTusIwBOU6R6FoX4wM5BDixjQisBwU8vheus6/ul/8XPbgNZAK+YEiwjnyVuYGzGep1AZlb9SLYO9wXIgZfH1nBHJMaB+u7tD/Zlu/bCNJFTKA=
Received: from SA6PR21MB4231.namprd21.prod.outlook.com (2603:10b6:806:412::20)
 by SA1PR21MB2052.namprd21.prod.outlook.com (2603:10b6:806:1b7::6)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.4; Wed, 29 Jan
 2025 00:54:03 +0000
Received: from SA6PR21MB4231.namprd21.prod.outlook.com
 ([fe80::5c62:d7c6:4531:3aff]) by SA6PR21MB4231.namprd21.prod.outlook.com
 ([fe80::5c62:d7c6:4531:3aff%5]) with mapi id 15.20.8398.014; Wed, 29 Jan 2025
 00:54:03 +0000
From: Long Li <longli@microsoft.com>
To: Stephen Hemminger <stephen@networkplumber.org>
CC: "longli@linuxonhyperv.com" <longli@linuxonhyperv.com>, Ferruh Yigit
 <ferruh.yigit@amd.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>, Wei
 Hu <weh@microsoft.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [EXTERNAL] Re: [PATCH 4/4] net/netvsc: cache device parameters
 for hot plug events
Thread-Topic: [EXTERNAL] Re: [PATCH 4/4] net/netvsc: cache device parameters
 for hot plug events
Thread-Index: AQHbcce/rc9eOeRySEeaW83iwXBySLMs3iDAgAAImACAAAYjgA==
Date: Wed, 29 Jan 2025 00:54:03 +0000
Message-ID: <SA6PR21MB4231D5067646877C7B99F64ECEEE2@SA6PR21MB4231.namprd21.prod.outlook.com>
References: <1738028106-25239-1-git-send-email-longli@linuxonhyperv.com>
 <1738028106-25239-4-git-send-email-longli@linuxonhyperv.com>
 <20250128130056.399a1dd5@hermes.local>
 <SA6PR21MB423184289E69944273AEC587CEEE2@SA6PR21MB4231.namprd21.prod.outlook.com>
 <20250128163130.4e718cc2@hermes.local>
In-Reply-To: <20250128163130.4e718cc2@hermes.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=c43dc3c3-5839-4ce1-8aff-b2647bdeddda;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2025-01-29T00:53:28Z;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Tag=10, 3, 0, 1;
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=microsoft.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SA6PR21MB4231:EE_|SA1PR21MB2052:EE_
x-ms-office365-filtering-correlation-id: 502eced2-af0a-45c9-73dc-08dd3fff6cf6
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
 ARA:13230040|10070799003|1800799024|366016|376014|38070700018; 
x-microsoft-antispam-message-info: =?us-ascii?Q?JsdCJTkxI1UxVNja1G9s7arxXq3VoAqP31QHCz6oU8tTPsSqYKJ2D6diZBXC?=
 =?us-ascii?Q?GIWW2hi1QF/ZDzF7JyYH9NiMGbmOPy/hamgcroWfg99i2qej9C0yQ8sAF3n4?=
 =?us-ascii?Q?cVjBzGg1faOHM8grKT+CFgzkmDMstb6VbN/Xiwsx2UDygLBrR4fvXEL76gJ9?=
 =?us-ascii?Q?OJ0zT7C6iLqD+u0XIPi8MKfJe9cOCBGnDW4iuaZd933ER5MGa3zYVIZJSX5a?=
 =?us-ascii?Q?czAEFNqp9HanTNdfKeLt4Gc13tnQVw+TsBTcmFeA7a2Ba5RKi+ul6Ffazd8S?=
 =?us-ascii?Q?g0tx64DtnZ+V+xB9i+PHdjDB3yG6htaIwCYEvMZKmmg1SW1wLvQg+OpM0Ois?=
 =?us-ascii?Q?qT1o9cW9CfH2RkvLEsXvtzKhTxulmuzXwac+Yvzyn0IjVtek7kK/3PJS3O8n?=
 =?us-ascii?Q?20bJshzFmYLM/zYGeUWDiP4FyJKS/ZkHhfPGfcRBqTAihSfJK6zBdrhm6Zov?=
 =?us-ascii?Q?35/dvKyAJXVwsrDPGf4QarKQANhaQ9cnVw531IiFR1z0urqwKlnN9ru4dzhR?=
 =?us-ascii?Q?BAQMG3c0foIWukW3tKF0KuEWoFo2Rr1Jr2ryHB5fQNq0qZHFYGKOIX5Nv/g+?=
 =?us-ascii?Q?Eb6ec+esVckeU9d76sYG/1sYVZhpHbPXl32OdIeouk8Ccj7mTKtF3a4XxJok?=
 =?us-ascii?Q?bnIxL50wzl9YQRaX+ecPePh/UbcFh8wJmC19dLtZhBYYicR6XLOi7rvL9WUe?=
 =?us-ascii?Q?aeh4lV6i2qp2nHE/Pu0WRjh9VpPmgKie0nw+cJTsy4qDO4MLkmfiuueAAixP?=
 =?us-ascii?Q?cJ6H2qy6LQuCxsq5QikPWBSii0OwUpqD1yYImYvReIlpbIWrkL/dIzDxTe36?=
 =?us-ascii?Q?RZR8Xj6iDtJ/c5WsxZw5MBU+aws9lAYERE7ePTs35MKdCVEaVenAo+nNHQ6o?=
 =?us-ascii?Q?8B924iaR/3LFo6gKUmyz56KFZEmKm5iY8aLAnZf9yRfwWx4RncXz+EQ1eri6?=
 =?us-ascii?Q?tLkWlmqGzu+vzI0SLRQvG5GPQ7sgEDwIAKuGD2q8WymHObSqWmAPjF6VbTdV?=
 =?us-ascii?Q?rkjbMZsfGVMxdgbr+y7ADxpwhcNdeyXU95lTsvnB9SkR7lUak5v6n8k9lMT4?=
 =?us-ascii?Q?+V39Fh7hA0YEvkiODb4BRg4bFxhBWw7lpBqbjO3F6ez/2gw3fFSmCj9ZqRp/?=
 =?us-ascii?Q?DTG5eNpV2lQrgnNv+U7au4xFH8IQpdfXglTdT2YfSNsgvhsQgAAeC/q1rj0p?=
 =?us-ascii?Q?VDO5KNaAnNm3+NMlBgI8ZWdQNxCPSgSkAhl3lYIxf1ifjT2ybFVFe4jCAbGV?=
 =?us-ascii?Q?xKWMqEFaFjBWWGRi/SBAUJPg74/IcgRdRhjVFVHaJqmS00RUtphVzyF73dJO?=
 =?us-ascii?Q?4EAiNkhRzvf13K7xP1tvtXVjJX6d0n9Pd344hTDCifqfeeZr0AMaAxrKXUYT?=
 =?us-ascii?Q?kwbROmGqmMKd1cW7O1cjGksvRYDE+6WelSpwJpRcKRFHx4SX3cbbLLwp66TY?=
 =?us-ascii?Q?yxGVUlBdwU71QLzeSkrPQq7GdWanMVil?=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SA6PR21MB4231.namprd21.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(10070799003)(1800799024)(366016)(376014)(38070700018); DIR:OUT;
 SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?5Nv0Av8wol9DW5+u5ZSAXsIl8u6oY3+rKITePR893pQyR2E6rqObtmQO605e?=
 =?us-ascii?Q?ugkQEEnCwe5WUGTFGZkbEaJiJlZbQroPIcomJafYcmk5x9qeEWaVgzvZbt62?=
 =?us-ascii?Q?1+zddHonsOXVqmWyHhMT0rTY+hWVNanbRWjsW5YrQpd/ZkDrSYRCxyzp1LWn?=
 =?us-ascii?Q?1c7pNpu+lS4icxn/0Py2VuVe0L6QhvTguopHdA5lmYrQbsrb25De1lbV/hP6?=
 =?us-ascii?Q?5IlxA0EC+69N6QaP0rDxujodCsvmlQvJS5eUPGdoHb4IrUNZGpAKPheYTxYr?=
 =?us-ascii?Q?rJGiE+kpFgeAttJdA4H3ROZWFO00A1hnUNnL+L453uakXZhEL3ZNVOpaUKkp?=
 =?us-ascii?Q?+gTC7TS7ddQ3NvsfrAj2VDBfXNJgd5XGKt+TY1oAStUOjhVzbQSjjizeRHgL?=
 =?us-ascii?Q?ieNTgqRhfC2SYczY39z/Vmw33aVxG8LqiT+QjqVSCP503S55LG37PRTZ9edb?=
 =?us-ascii?Q?tJfINQIKgJqdoRCxZBN0LCidbEEmdjQaiyyk2zDT0sD4jSpUAc9PVFmYBAgi?=
 =?us-ascii?Q?Lf7HCw9HRgbBwxfBjHQYRV2bAB8fvkO3+pIJKmCy5Z3lmIpC+AFGIj5qFOdt?=
 =?us-ascii?Q?ZnZeZK7cQDeVSMMZq/xBnJKdO+XC1PrynirX9Tm/BeIOx7bY+4ZnH8bnRAjE?=
 =?us-ascii?Q?+HyQ55ZKaPmIttkcbfSK92A4QtzPweiPChaBXstrNXNEIkM8ypWAs25AcxaL?=
 =?us-ascii?Q?BAGZXQIBLYqO6ciMXr4PxRW5t7P3ioiuQMeJnckBS/d3FOSUcHsRDWZAgMcD?=
 =?us-ascii?Q?vjaug0Dbb1FBpda933ON9G3QQrFsxAVyDovRdP+2eTmktDcYLUaB6drUix7U?=
 =?us-ascii?Q?2BcR2IDz5QlQl25lgnwu4ftG2PLyjkVVyg9wdimLU79kgwlATEaVsO3ASRap?=
 =?us-ascii?Q?aNmIL/QCud0pZVUPTc8+6dzHZFQMyNqhDjERIfzgdRICQQ5SSwVBoHdchOUh?=
 =?us-ascii?Q?ZJK9wu9zWMG52CgZbV+SsIF2RfWda+WXEzIhj08LF7NNiCkXtHFOuTU6azhG?=
 =?us-ascii?Q?2LSPkRpGe82AokYbYeqhobHLqXhZCkmueRDbKmu7qRYj7HP4rwqUdUn/5/Ju?=
 =?us-ascii?Q?XIOeifCDCesR0lmoDlvQG8F6pIzGRN1xR/rDOB0s4Ht5O51Oddm+V1pyMoe2?=
 =?us-ascii?Q?vBizVpldqx+vOlkjk2tV4dOmLpFxWhgaNuaqML02sQDMEZkcB5fELTGb6NNf?=
 =?us-ascii?Q?mnFE6MNBTLEmWh5LWH1GMyUA5Ic6tsqaJNWdebedizuHM/0Wz6PFP+idQCsq?=
 =?us-ascii?Q?NSqEvC95srdOrfKduI45gDblm633QfHf7xJqJ1RRYy0BUPuphbWyT7sJ18YZ?=
 =?us-ascii?Q?r182q4ck9yekEMI6mNORcTx/1PAMu+p1VdY49ZBP/1e6KpVMO2IjthejSLTP?=
 =?us-ascii?Q?XeyeSRkT/7Wzv1GaY/wsxzWl0KXasKMMsgPngemgkaa3+S5ZXGkr9NYlpWFi?=
 =?us-ascii?Q?Egbukb2OII6+F4kBndNiZ3Bh+PE0PRKJVp2FslpX7DeMQe3fX0FiDpA+DNKW?=
 =?us-ascii?Q?TjRHjmOnvHEHsx+xyr6/TzTDkPFZHWu4qOhJ+9Ymesoo3MgG7UqRFGHvHKpB?=
 =?us-ascii?Q?gYaKkUgshG7wmtVBLIoCW5iTtT2oOGDvP9B5NNhTdhRQqpQyfouK3Gn+Z3bD?=
 =?us-ascii?Q?2teavLmFv3AZr/vRtxd9oi4cTWkJrhrfS5NfZO1ob+3U?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SA6PR21MB4231.namprd21.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 502eced2-af0a-45c9-73dc-08dd3fff6cf6
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2025 00:54:03.3269 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: gI2ISbUfKd4aM3zy4bMBGs7NBcdu6Qg0+rUwyFpvz3y7njvm7+Jb60X4A0rFE8VMHFZP4XEMx/xzUahTUdBn+g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR21MB2052
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org



> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Tuesday, January 28, 2025 4:32 PM
> To: Long Li <longli@microsoft.com>
> Cc: longli@linuxonhyperv.com; Ferruh Yigit <ferruh.yigit@amd.com>; Andrew
> Rybchenko <andrew.rybchenko@oktetlabs.ru>; Wei Hu <weh@microsoft.com>;
> dev@dpdk.org
> Subject: Re: [EXTERNAL] Re: [PATCH 4/4] net/netvsc: cache device paramete=
rs
> for hot plug events
>=20
> On Wed, 29 Jan 2025 00:10:12 +0000
> Long Li <longli@microsoft.com> wrote:
>=20
> > > Subject: [EXTERNAL] Re: [PATCH 4/4] net/netvsc: cache device
> > > parameters for hot plug events
> > >
> > > On Mon, 27 Jan 2025 17:35:06 -0800
> > > longli@linuxonhyperv.com wrote:
> > >
> > > > @@ -1409,9 +1424,6 @@ eth_hn_dev_uninit(struct rte_eth_dev *eth_dev=
)
> > > >  	ret_stop =3D hn_dev_stop(eth_dev);
> > > >  	hn_dev_close(eth_dev);
> > > >
> > > > -	free(hv->vf_devargs);
> > > > -	hv->vf_devargs =3D NULL;
> > > > -
> > > >  	hn_detach(hv);
> > > >  	hn_chim_uninit(eth_dev);
> > > >  	rte_vmbus_chan_close(hv->channels[0]);
> > > > @@ -1423,6 +1435,61 @@ eth_hn_dev_uninit(struct rte_eth_dev
> *eth_dev)
> > > >  	return ret_stop;
> > > >  }
> > > >
> > > > +static int populate_cache_list(void) {
> > > > +	int ret;
> > > > +	struct rte_devargs *da;
> > > > +
> > > > +	rte_spinlock_lock(&netvsc_lock);
> > > > +	da_cache_usage++;
> > > > +	if (da_cache_usage > 1) {
> > > > +		ret =3D 0;
> > > > +		goto out;
> > > > +	}
> > > > +
> > > > +	LIST_INIT(&da_cache_list);
> > > > +	RTE_EAL_DEVARGS_FOREACH("pci", da) {
> > > > +		struct da_cache *cache;
> > > > +
> > > > +		cache =3D rte_zmalloc("NETVSC-HOTADD", sizeof(*cache),
> > > rte_mem_page_size());
> > > > +		if (!cache) {
> > > > +			ret =3D -ENOMEM;
> > > > +			goto out;
> > > > +		}
> > > > +
> > > > +		strncpy(cache->name, da->name, sizeof(da->name));
> > > > +		cache->drv_str =3D strdup(da->drv_str);
> > > > +		if (!cache->drv_str) {
> > > > +			rte_free(cache);
> > > > +			ret =3D -ENOMEM;
> > > > +			goto out;
> > > > +		}
> > > > +
> > > > +		LIST_INSERT_HEAD(&da_cache_list, cache, list);
> > > > +	}
> > >
> > > Why do you need to cache entry to be page aligned, that seems
> > > unnecessary wasteful?
> >
> > You are right it doesn't need to. I'm removing the alignment.
> >
> > > Why does it need to be huge pages? versus normal malloc?
> >
> > I thought it would make it easier to debug memory leaks through EAL. Bu=
t
> normal malloc is fine because this data is not shared between primary/sec=
ondary.
> >
> > > The string is coming from malloc (strdup) so it can't be used by seco=
ndary
> process.
> > >
> > > Since you are allocating a devargs cache entry, you could just as
> > > well use flexible array where entry was like:
> > > struct da_cache {
> > > 	LIST_ENTRY(da_cache) list;
> > > 	char name[RTE_DEV_NAME_MAX_LEN];
> > > 	char drv_str[];
> > > };
> >
> > This is difficult as I don't know how big it is for drv_str[].
>=20
> That is why the malloc adds extra space for drv_str, see below.
> Flexible array allow one array at end of structure
> > >
> > >
> > > 	cache =3D malloc(sizeof(*cache) + strlen(da->drv_str) + 1); ...
> > > 	strcpy(cache->drv_str, da->drv_str);
> >

Thank you, got it.