Re: [PATCH v6 5/8] eal: introduce bus scan and probe in EAL
From: Thomas Monjalon <hidden>
Date: 2017-01-17 23:04:38
2017-01-17 10:33, Shreyansh Jain:
On Tuesday 17 January 2017 01:28 AM, Ferruh Yigit wrote:quoted
On 1/16/2017 3:38 PM, Shreyansh Jain wrote:quoted
+/* Add a PCI device to PCI Bus */ +void +rte_eal_pci_add_device(struct rte_pci_bus *pci_bus, + struct rte_pci_device *pci_dev)I think more generic approach from previous version was better (rte_eal_bus_add_device()), but I guess they sacrificed for less modification.There was a lot of offline discussions after the reviews were posted until v5. From the gist of it, I gathered that smaller 'specific' changes are preferred as compared to complete generic approach without an upfront usecase.
Yes I discussed (a lot) this approach with Shreyansh.
Also, this change became irrelevant once I moved out the device/driver lists from rte_bus to rte_xxx_bus. This is inline with existing model of (rte_pci_device->rte_device, rte_pci_driver->rte_driver, rte_pci_bus->rte_bus) and having pci_device_list/pci_driver_list private to PCI itself. I guess what is going to happen is that in near future when buses start moving to drivers/bus/*, this kind of generic layer would come in.
I think there will be no use case requiring a unique list of all rte_device(s). Being generic and wrapping stuff with abstract classes is not always a benefit. That's why, this version is more focused on specialized objects. Experience with this layering will tell us wether it is a good design or not.