[dpdk-dev] [RFC PATCH 1/6] librte_ether: add fields from rte_pci_driver to rte_eth_dev and rte_eth_dev_data.

Bruce Richardson bruce.richardson at intel.com
Tue Sep 1 14:03:49 CEST 2015


On Tue, Sep 01, 2015 at 11:38:31AM +0000, Iremonger, Bernard wrote:
> Hi THomas,
> 
> <snip>
> 
> > > @@ -424,7 +425,10 @@ rte_eth_dev_socket_id(uint8_t port_id)  {
> > >  	if (!rte_eth_dev_is_valid_port(port_id))
> > >  		return -1;
> > > -	return rte_eth_devices[port_id].pci_dev->numa_node;
> > > +	if (rte_eth_devices[port_id].dev_type == RTE_ETH_DEV_PCI)
> > > +		return rte_eth_devices[port_id].pci_dev->numa_node;
> > > +	else
> > > +		return rte_eth_devices[port_id].data->numa_node;
> > 
> > Clearly not the way to go.
> > We should remove the special cases (PCI, PDEV, VDEV) instead of adding
> > more checks.
> 
> The dev_type field is not new, just using it now to distinguish between PCI and non PCI devices.
> 
> I have moved some of the RTE_PCI_DRV flags to a new dev_flags field in struct rte_eth_dev{},
> These flags are independent of the driver type (PCI or non PCI).
> Do you have view on this new dev_flags field and macros?
> 
> Regards,
> 
> Bernard.
> 
Just to give my 2c.

The branch in the snippet above should not exist. Each PMD should set the data
numa_node and the flags fields appropriately at initialization, either directly
or by copying in the relevant data from the interface specific structure e.g. pci.
The ethdev should never need to check the device type here, it should always just
read data->numa_node.

/Bruce


More information about the dev mailing list