Hi Jan, Apologies for delay in my response.
On Tuesday 05 July 2016 10:46 AM, Jan Viktorin wrote: > Hello Shreyansh, > ? >> On Monday 04 July 2016 08:06 PM, Jan Viktorin wrote: >>> On Mon, 4 Jul 2016 19:57:18 +0530 >>> Shreyansh jain <shreyansh.jain at nxp.com> wrote: >>> >>> [...] >>> >>>>>>> @@ -1431,7 +1524,7 @@ >rte_eth_dev_info_get(uint8_t port_id, struct >>>>>>> >rte_eth_dev_info *dev_info) >>>>>>> >>>>>>> RTE_FUNC_PTR_OR_RET(*dev->dev_ops->>dev_infos_get); >>>>>>> (*dev->dev_ops->dev_infos_get)(dev, dev_info); >>>>>>> - dev_info->pci_dev = dev->pci_dev; >>>>>>> + dev_info->soc_dev = dev->soc_dev; >>>>>> >>>>>> I think both the members, pci_dev and soc_dev, should be updated by this >>>>>> call. >>>>>> Is there some specific reason why soc_dev is the only one which is >>>>>> getting updated? >>>>> >>>>> Yes, looks like a mistake. Thanks! And sorry for delayed reply. >>>> >>>> No problems - thanks for confirmation. >>>> I have gone through almost complete series and as and when you rebase it, >>>> it would have my ACK. >>> >>> OK, thanks. That's what I am playing with right now. I've rebased on v3 of >>> this patch. There will >>> be some more tests in my v2. >>> >>>> rte_driver patchset which I sent last are broken - I will publish an >>>> updated version very soon. >>> >>> I am surprised that you've changed the args to RTE_EAL_PCI_REGISTER... Are >>> you sure about this step? >>> I wrote that I'll change it myself for v2 for SoC to accept name and >>> pointer as it was originally for PCI... >> >> Really? Then probably I understood it wrong. I don't have any issues with >> the first one as well but just for slightly cleaner approach I thought of >> going with your suggest (or, suggestion as understood by me). > ?> >> Anyways the patch is broken and doesn't apply on master. I will push a new >> version (with revert EAL_PCI_REGISTER arguments) within today. > > Ok. I am away for few days this week but I will continue as soon as possible > on the soc patchset and also on the rte_device/driver issue. We have to cut > this as soon as possible. I think the best would be to post a small patchset > on top of this one introducing the change. I am anyway working on a driver for NXP's SoC platform which I am basing over rte_device + SoC patchset. I plan to release a draft of this driver soon. It might help validate both the patchsets in a limited manner. > > I think, there should be a single list of rte_device and a list for > rte_driver while preserving lists for each infra, so also rte_pci_device > would have a separate list. Then, it's possible to iterate over all PCI > devices easily and iterate over all devices generically at the same time. I have similar understanding. Separate pci/soc lists, and unified rte_driver and rte_device lists. This, in my opinion, would help keep the interfaces clean (free of unnecessary checks). > > What I am not sure about are addr and id things. It's quite difficult to > generalize them. The addr needs a conpare function but how to compare pci > addr to another type of addr? Do we need this? If so, I'll work on this. I am not sure why we need to compare the PCI addresses with non-PCI (or any other, SoC) address set? Can you elaborate? > > Another thing - resources. Do we want to have a kind of a generic > rte_resource instead of rte_pci_resource? I think this is clearly possible. I > am about to do this. The idea sounds good but I don't know whether it would be feasible or not. My understanding is that resources have special characteristics. Generalizing them would involve creating opaque objects in rte_resource{..} which in turn beats the purpose of generalization. Probably, I will wait for your next patchset version to understand your approach. > > I am afraid we are unable to change devargs significantly in this release :/ > (due to time and lack of a discussion here).? What I really like to see is > the virtual device conversion and pmd_type removal. Are you able to look at > this? pmd_type removal is my todo as well. This would anyway impact the vdevs. I haven't given devargs much thought, yet. > > Any other objections? I was looking at various discussions [1],[2] that have happened in past. From that, the summary I have is: 1) Generalize devices to rte_device/rte_driver `-- Cleaner interfaces/difference for 'bus', 'driver' and 'device' `-- Moving the init/deinit functions into rte_device/rte_driver layer `-- hierarchical device structure (as explained by David in [1]) 2) Do away with device type specific initializations (registrations) `-- No more pdev/vdev distinction `-- standardizing devargs for accepting device specific strings. 3) Hotplug support Most of work of (1) David has already done. What remains is completing (2) and probably (3) which I haven't verified yet. [1] http://dpdk.org/ml/archives/dev/2016-January/031390.html [2] http://dpdk.org/ml/archives/dev/2016-January/030975.html > > Jan Viktorin > RehiveTech > Sent from a mobile device? > >>> >>> Jan >>> >> >> - >> Shreyansh > - Shreyansh