On Thu, 6 Mar 2025 16:26:50 +0000 Shani Peretz <[email protected]> wrote:
> > -----Original Message----- > > From: Stephen Hemminger <[email protected]> > > Sent: Thursday, 20 February 2025 20:33 > > To: Shani Peretz <[email protected]> > > Cc: [email protected]; Tyler Retzlaff <[email protected]>; Parav > > Pandit > > <[email protected]>; Xueming Li <[email protected]>; Nipun Gupta > > <[email protected]>; Nikhil Agarwal <[email protected]>; Hemant > > Agrawal <[email protected]>; Sachin Saxena > > <[email protected]>; Rosen Xu <[email protected]>; Chenbo Xia > > <[email protected]>; Tomasz Duszynski <[email protected]>; > > Chengwen Feng <[email protected]>; NBU-Contact-longli > > (EXTERNAL) <[email protected]>; Wei Hu <[email protected]>; Bruce > > Richardson <[email protected]>; Kevin Laatz > > <[email protected]>; Jan Blunck <[email protected]> > > Subject: Re: [PATCH v7 2/4] lib: fix comparison between devices > > > > External email: Use caution opening links or attachments > > > > > > On Wed, 12 Feb 2025 18:38:33 +0200 > > Shani Peretz <[email protected]> wrote: > > > > > DPDK supports multiple formats for specifying buses, (such as > > > "0000:08:00.0" and "08:00.0" for PCI). > > > This flexibility can lead to inconsistencies when using one format > > > while running testpmd, then attempts to use the other format in a > > > later command, resulting in a failure. > > > > > > The issue arises from the find_device function, which compares the > > > user-provided string directly with the device->name in the rte_device > > > structure. > > > 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. > > > > Could you give an example where this happens please? > > Shouldn't find_device string always be changed into canonical form in > > find_device handler? > > The flow I was dealing with was attach_port -> rte_dev_probe - > > local_dev_probe -> find_device. > The string passed to attach_port was the short version, directly from the > user. > > So, to clarify - you're saying that find_device simply need to accept the > string in its canonical form? Which means we'll only need to fix > local_dev_probe to bring it to the canonical form before calling find_device? > I tried it but then I noticed that there's no function that gets the > user-provided string and returns it's string canonical form. The closest to > this is parse, but what it eventually returns is not necessarily a string - > it can be anything - for instance pci_parse will give you back a struct > rte_pci_addr. Not sure at this point. There are two options. One would be fixup in attach_port the other would be allowing short form in PCI part of find_device. Since the strings from command line are put in canonical form for devargs, it seems logical to do it in attach_port path.

