On 2025/1/30 2:06, Bruce Richardson wrote: > On Wed, Jan 29, 2025 at 09:17:38AM -0800, Stephen Hemminger wrote: >> On Wed, 29 Jan 2025 10:54:16 +0200 >> Shani Peretz <shper...@nvidia.com> wrote: >> >>> DPDK provides two formats for specifying PCI device numbers: >>> a full version ("0000:08:00.0") and a short version ("08:00.0"). >>> Issues can occur when an application uses one format (e.g., short) >>> while running testpmd, then attempts to use the other format >>> (e.g., full) in a later command, resulting in a failure. >>> >>> The issue is that find_device goes over the list of devices and >>> compares the user-provided string to the rte_device structure's >>> device->name (device->name is just the string received from devargs >>> (i.e "08:00.0" or "0000:08:00.0")). >>> Notice that there's another field that represents the device name, >>> but this one is in the rte_pci_bus struct. This name is actually the result >>> of the PCI parse function ("0000:08:00.0"). >>> If we want to accurately compare these names, we'll need to bring both >>> sides to the same representation by invoking the parse function on >>> the user input. >>> >>> To make the cmp_dev_name function applicable to all buses—not just PCI— >>> the proposed solution is to utilize the parse function implemented by >>> each bus. When comparing names, we will call parse on the supplied >>> string as well as on the device name itself and compare the results. >>> This will allow consistent comparisons between different representations >>> of same devices. >>> >>> Also, the pci_common_set function has been modified to improve naming >>> consistency for PCI buses. >>> Now, the name stored in rte_device for PCI buses will match the parsed >>> name that is also stored in rte_pci_device name, >>> rather than using the user-provided string from devargs. >>> As a result, when a new PCI device is registered, the name displayed in >>> the device list will be the parsed version. >>> >>> Added tests that compare and find devices in various forms of names >>> under test_devargs. >>> >>> Fixes: a3ee360f4440 ("eal: add hotplug add/remove device") >> >> Maybe just fix for now by normalizing the PCI device string when before >> storing and after parsing? That would allow for simple fix that can be >> backported. >> The more complex generalization of bus address is too much to go to stable >> branch.
+1 > > One idea for backport, perhaps? > > https://patches.dpdk.org/project/dpdk/patch/20241119155723.2307189-1-bruce.richard...@intel.com/ ack >