> -----Original Message----- > From: Ananyev, Konstantin > Sent: Thursday, June 11, 2015 9:14 AM > To: Wang, Liang-min; dev at dpdk.org > Subject: RE: [dpdk-dev] [PATCH v4 1/4] ethdev: add apis to support access > device info > > > > > > + > > > > +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
That's a very valid point. To support run-time ring descriptor size adjustment, we need to stop traffic in some way.