> -----Original Message-----
> From: Stephen Hemminger <step...@networkplumber.org>
> Sent: Wednesday, 5 February 2025 20:46
> To: Shani Peretz <shper...@nvidia.com>
> Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon (EXTERNAL)
> <tho...@monjalon.net>; Tyler Retzlaff <roret...@linux.microsoft.com>; Parav
> Pandit <pa...@nvidia.com>; Xueming Li <xuemi...@nvidia.com>; Nipun Gupta
> <nipun.gu...@amd.com>; Nikhil Agarwal <nikhil.agar...@amd.com>; Hemant
> Agrawal <hemant.agra...@nxp.com>; Sachin Saxena
> <sachin.sax...@nxp.com>; Rosen Xu <rosen...@intel.com>; Chenbo Xia
> <chen...@nvidia.com>; Tomasz Duszynski <tduszyn...@marvell.com>;
> Chengwen Feng <fengcheng...@huawei.com>; NBU-Contact-longli
> (EXTERNAL) <lon...@microsoft.com>; Wei Hu <w...@microsoft.com>; Bruce
> Richardson <bruce.richard...@intel.com>; Kevin Laatz
> <kevin.la...@intel.com>; Jan Blunck <jblu...@infradead.org>
> Subject: Re: [PATCH v4] bus: fix inconsistent representation of PCI numbers
> 
> External email: Use caution opening links or attachments
> 
> 
> On Wed, 5 Feb 2025 17:37:54 +0000
> Shani Peretz <shper...@nvidia.com> wrote:
> 
> > > -----Original Message-----
> > > From: Stephen Hemminger <step...@networkplumber.org>
> > > Sent: Wednesday, 5 February 2025 18:42
> > > To: Shani Peretz <shper...@nvidia.com>
> > > Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon (EXTERNAL)
> > > <tho...@monjalon.net>; Tyler Retzlaff
> > > <roret...@linux.microsoft.com>; Parav Pandit <pa...@nvidia.com>;
> > > Xueming Li <xuemi...@nvidia.com>; Nipun Gupta
> <nipun.gu...@amd.com>;
> > > Nikhil Agarwal <nikhil.agar...@amd.com>; Hemant Agrawal
> > > <hemant.agra...@nxp.com>; Sachin Saxena <sachin.sax...@nxp.com>;
> > > Rosen Xu <rosen...@intel.com>; Chenbo Xia <chen...@nvidia.com>;
> > > Tomasz Duszynski <tduszyn...@marvell.com>; Chengwen Feng
> > > <fengcheng...@huawei.com>; NBU-Contact-longli
> > > (EXTERNAL) <lon...@microsoft.com>; Wei Hu <w...@microsoft.com>; Bruce
> > > Richardson <bruce.richard...@intel.com>; Kevin Laatz
> > > <kevin.la...@intel.com>; Jan Blunck <jblu...@infradead.org>
> > > Subject: Re: [PATCH v4] bus: fix inconsistent representation of PCI
> > > numbers
> > >
> > > External email: Use caution opening links or attachments
> > >
> > >
> > > On Wed, 5 Feb 2025 16:36:11 +0000
> > > Shani Peretz <shper...@nvidia.com> wrote:
> > >
> > > > > -----Original Message-----
> > > > > From: Stephen Hemminger <step...@networkplumber.org>
> > > > > Sent: Wednesday, 29 January 2025 18:25
> > > > > To: Shani Peretz <shper...@nvidia.com>
> > > > > Cc: dev@dpdk.org; NBU-Contact-Thomas Monjalon (EXTERNAL)
> > > > > <tho...@monjalon.net>; Tyler Retzlaff
> > > > > <roret...@linux.microsoft.com>; Parav Pandit <pa...@nvidia.com>;
> > > > > Xueming Li <xuemi...@nvidia.com>; Nipun Gupta
> > > <nipun.gu...@amd.com>;
> > > > > Nikhil Agarwal <nikhil.agar...@amd.com>; Hemant Agrawal
> > > > > <hemant.agra...@nxp.com>; Sachin Saxena <sachin.sax...@nxp.com>;
> > > > > Rosen Xu <rosen...@intel.com>; Chenbo Xia <chen...@nvidia.com>;
> > > > > Tomasz Duszynski <tduszyn...@marvell.com>; Chengwen Feng
> > > > > <fengcheng...@huawei.com>; NBU-Contact-longli
> > > > > (EXTERNAL) <lon...@microsoft.com>; Wei Hu <w...@microsoft.com>;
> > > > > Bruce Richardson <bruce.richard...@intel.com>; Kevin Laatz
> > > > > <kevin.la...@intel.com>; Jan Blunck <jblu...@infradead.org>
> > > > > Subject: Re: [PATCH v4] bus: fix inconsistent representation of
> > > > > PCI numbers
> > > > >
> > > > > External email: Use caution opening links or attachments
> > > > >
> > > > >
> > > > > On Wed, 29 Jan 2025 10:54:16 +0200 Shani Peretz
> > > > > <shper...@nvidia.com> wrote:
> > > > >
> > > > > > +create_pci_dev(const char *name) {
> > > > > > +     int port_id;
> > > > > > +     uint8_t slave_mac1[] = {0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00 };
> > > > > > +     struct rte_ether_addr *mac_addr = (struct rte_ether_addr
> > > > > > +*)slave_mac1;
> > > > >
> > > > > Use different initializer and you can avoid the need for cast here.
> > > > >
> > > > >
> > > > > >
> > > > > > +/**
> > > > > > + * General device name comparison. Will compare by using the
> > > > > > +specific bus
> > > > > > + * compare function or by comparing the names directly.
> > > > > > + *
> > > > > > + * @param dev
> > > > > > + *   Device handle.
> > > > > > + * @param name
> > > > > > + *   Name to compare against.
> > > > > > + * @return
> > > > > > + *   0 if the device matches the name. Nonzero otherwise.
> > > > > > + */
> > > > > > +__rte_internal
> > > > > > +int rte_cmp_dev_name(const struct rte_device *dev, const void
> > > > > > +*name);
> > > > >
> > > > > It would make more sense to me if name was a character not void
> pointer.
> > > > >
> > > > > The design might be clearer if bus address was more of an
> > > > > typedef with a pointer and size together. Treat it more like an 
> > > > > object.
> > > >
> > > >
> > > > Okay so just to understand,
> > > > this is the struct I am adding:
> > > >
> > > >       struct rte_bus_address {
> > > >              const void *addr;
> > > >              size_t size;
> > > >       };
> > > >
> > > > This is how I pass it to find_device:
> > > >
> > > >       struct rte_bus_address dev_addr = {
> > > >                 .addr = da->name,
> > > >                 .size = RTE_DEV_NAME_MAX_LEN
> > > >       };
> > > >       dev = da->bus->find_device(NULL, rte_cmp_dev_name,
> > > > &dev_addr);
> > > >
> > > > And this is how I use it in rte_cmp_dev_name:
> > > >
> > > >       rte_cmp_dev_name(const struct rte_device *dev1, const void *addr)
> > > >        {
> > > >              const struct rte_bus_address *dev2_addr = addr;
> > > >       …
> > > >       }
> > > >
> > > > Is that what you meant?
> > > > Also, I'm not sure if the size is really needed, because we check
> > > > the size of the parsed name, which may be different than the size
> > > > of the original name
> > > >
> > >
> > > It would be best to pass rte_bus_address to rte_cmp_dev_name rather
> > > than having implied cast.
> > > Not sure if that is possible without breaking API though.
> >
> > I think you are right, also it will require to change the signature of
> > find_device which will make it even bigger change
> 
> Could you post patch with something "good enough" that builds and passes
> tests?

You mean with the rte_bus_address change or without?
Without it it was tested and passed. With it I only ran few tests locally and 
they passed

Reply via email to