Hi, Thanks Rivet. I was checking the testpmd application to test if my PMD is registered on the PCI device list. With the softnic pmd, rte_eal_init calls vdev_scan()
But when I run testpmd with options: ./testpmd -l 0-3 -n 4 -- i it again calls vdev_scan(). Also only virtual device drivers are getting registered through rte_vdev_register. I was expecting it to register rte_pci_register then call rte_pci_scan() and then subsequently rte_pci_probe() Does testpmd work with PCI devices or only Vdevs. I am trying to write my own PMD for a NIC on my laptop from Realtek. Thanks Nayan On Mon, Nov 25, 2019 at 8:55 PM Gaëtan Rivet <[email protected]> wrote: > > On Mon, Nov 25, 2019 at 08:13:00PM +0530, Gadre Nayan wrote: > > Hi, > > > > I am trying to understand RTE_REGISTER_BUS for PCI Bus. > > > > 1. Load uio, igb_uio, bind the NIC with igb_uio. > > 2. load the application. > > > > Step 1, is mostly about registering Drivers with the PCI bus. > > I am looking at when does RTE_REGISTER_BUS get called in this process. > > > > Thanks > > Nayan > > Hello, > > RTE_REGISTER_ functions all uses RTE_INIT_PRIO(n) macro. > This macro will only add the GCC attribute __attribute__((constructor(n), > used)) > to the symbole defined with RTE_INIT_PRIO() (attribute supported by all > major compiler). > > This attribute adds the related function to the .init section of the > generated ELF. This section is executed before the main() of the > program. > > This allows libraries to define init and cleanup code that is executed > automatically when linking against the lib. > > -- > Gaėtan Rivet > 6WIND
