From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH 2/2] drivers/net: use device name from device structure Date: Mon, 12 Jun 2017 09:57:11 +0100 Message-ID: <4b4ba4b2-3abe-0d5b-0dea-6e37ec6b5507@intel.com> References: <20170526161141.4746-1-ferruh.yigit@intel.com> <20170526161141.4746-2-ferruh.yigit@intel.com> <1804015.XMfruEeC3U@xps> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: dev , "John W. Linville" , Stephen Hurd , Ajit Khaparde , Declan Doherty , Helin Zhang , Jingjing Wu , Wenzhuo Lu , Konstantin Ananyev , Pascal Mazon , Gaetan Rivet To: Jan Blunck , Thomas Monjalon Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 3FB62DE3 for ; Mon, 12 Jun 2017 10:57:15 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 6/10/2017 8:35 AM, Jan Blunck wrote: > On Fri, Jun 9, 2017 at 3:52 PM, Thomas Monjalon wrote: >> 26/05/2017 18:11, Ferruh Yigit: >>> Device name resides in two different locations, in rte_device->name and >>> in ethernet device private data. >> >> Yes would be nice to remove the name from rte_eth_dev_data. >> > > I wonder if this is really the right thing to do. The name in the > eth_dev data is the eth_dev device name and it might be different from > the low-level device name. Some busses might use UUID as the device > identifier and I don't believe that this is a user friendly name. Right now eth_dev->data->name is same with with rte_dev->device->name. And there is an assumption that they will be same [1]. But if you think they can be different in the future, I think we can: 1- Keep as it is. 2- Reduce to single variable as much as possible (this patch), when different naming implemented, update relevant parts according. Since this is internal structure, I believe won't cause an ABI issue. [1] rte_eth_dev_pci_allocate() and rte_eth_vdev_allocate() use rte_dev->device->name to call rte_eth_dev_allocate(), which inside calls rte_eth_dev_allocated() with same name. Which assumes any previously created eth_dev, created with rte_dev->device->name. > >>> For now, the copy in the ethernet device private data is required for >>> multi process support, the name is the how secondary process finds about >>> primary process device. >> >> Yes it is in rte_eth_dev_attach_secondary(). >> This secondary process forces us to write ugly data structures. >> >>> But for drivers there is no reason to use the copy in the ethernet >>> device private data. >> >> Yes I agree. > > Probably. But it also depends on at what stage the driver is using the > name and what information is printed. During probing I would expect > the low-level device name to be printed. After probing the eth_dev PMD > should use the user friendly device name. This makes sense when different naming used for core device and eth_dev, but this is not the case for now. > >> There are probably other places where we can avoid using this field. >> I see rte_eth_dev_get_name_by_port() and rte_eth_dev_get_port_by_name() >> using rte_eth_dev_data[port].name. >> >>> This patch updates PMDs to use only rte_device->name. >>> >>> Signed-off-by: Ferruh Yigit >>