15/05/2019 08:52, Nithin Dabilpuram: > Hi Thomas, > On Tue, May 14, 2019 at 05:39:30PM +0200, Thomas Monjalon wrote: > > Hi, > > > > 13/05/2019 13:21, Nithin Dabilpuram: > > > With the latest published interface of > > > rte_eal_hotplug_[add,remove](), and rte_eth_dev_close(), > > > rte_eth_dev_close() would cleanup all the data structures of > > > port's eth dev leaving the device common resource intact > > > if RTE_ETH_DEV_CLOSE_REMOVE is set in dev flags. > > > So "port detach" (~hotplug remove) should be able to work, > > > with device identifier like "port attach" as eth_dev could have > > > been closed already and rte_eth_devices[port_id] reused. > > > > "port attach" uses devargs as identifier because there > > is no port id before creating it. But "detach port" uses > > logically the port id to close. > > But if "port close" was already called on that port, > eth_dev->state would be set as RTE_ETH_DEV_UNUSED and > that port id could be reused. > So after "port close" if we call "port detach", isn't it > incorrect to use the same port id ?
Yes it is incorrect to close a port which is already closed :) > > > This change alters "port detach" cmdline interface to > > > work with device identifier like "port attach". > > > > The word "port" means an ethdev port, so it should be > > referenced with a port id. > > If you want to close an EAL rte_device, then you should > > rename the command. > > But testpmd purpose should be to work with ethdev ports only. > > Renaming the command to "detach <identifier>" ? Yes something like that. But why do you want to manage rte_device in testpmd? Being able to close ports in not enough? Please describe a scenario.