[dpdk-dev] [PATCH v4 1/4] ethdev: add apis to support access device info

Ananyev, Konstantin konstantin.ananyev at intel.com
Thu Jun 11 15:14:22 CEST 2015


> > > +
> > > +int
> > > +rte_eth_dev_set_ringparam(uint8_t port_id, struct rte_dev_ring_info
> > > +*info) {
> > > +	struct rte_eth_dev *dev;
> > > +
> > > +	if (!rte_eth_dev_is_valid_port(port_id)) {
> > > +		PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id);
> > > +		return -ENODEV;
> > > +	}
> > > +
> > > +	if ((dev= &rte_eth_devices[port_id]) == NULL) {
> > > +		PMD_DEBUG_TRACE("Invalid port device\n");
> > > +		return -ENODEV;
> > > +	}
> > > +
> > > +	FUNC_PTR_OR_ERR_RET(*dev->dev_ops->set_ringparam, -
> > ENOTSUP);
> > > +	return (*dev->dev_ops->set_ringparam)(dev, info); }
> >
> >
> > I am a bit confused, what particular value of rte_dev_ring_info will be
> > allowed to change?
> > You can't change number of RXD/TXD at runtime.
> > You have to stop the device first, and then reconfigure particular queue(s).
> > Again, you can't reset RXF/TXD without stopping RX/TX first.
> > So what that function is supposed to do?
> > As I can see currently, none of the PMD in your patch support it.
> >
> 
> Exactly, setting RXD/TXD will require some change on kernel (RX/TX burst) function.
> As you already observe that there is no dev_op registered for set_ring.
> The API is created as a placeholder for future implementation.
> There are a couple of idea thrown around (such as mono- increase/decrease to avoid buffer overrun).
> Any suggestion is welcome.

If you don't plan to implement it in current patch-set, then it is better to remove it for now.
About suggestions - as I said, I don't think it is doable without stopping (and reconfiguring) the queue.
Again not sure, why do you want to do that run-tme.
Konstantin


More information about the dev mailing list