On Sun, 28 Apr 2019 06:57:59 +0000 Matan Azrad <ma...@mellanox.com> wrote:
> Hi Thomas > > vdev_netvsc has no close API - should I change something there? > > > From: Thomas Monjalon <tho...@monjalon.net> > > Hi all, > > > > Since DPDK 18.11, the behaviour of the close operation is changed if > > RTE_ETH_DEV_CLOSE_REMOVE is enabled in the driver: > > port is released (i.e. totally freed and data erased) on close. > > This new behaviour is enabled per driver for a migration period. > > > > Looking at the code, you can see these comments: > > /* old behaviour: only free queue arrays */ RTE_ETHDEV_LOG(DEBUG, "Port > > closing is using an old behaviour.\n" > > "The driver %s should migrate to the new behaviour.\n", > > /* new behaviour: send event + reset state + free all data */ > > > > You can find an advice in the commit: > > https://eur03.safelinks.protection.outlook.com/?url=http%3A%2F%2 > > Fgit.dpdk.org%2Fdpdk%2Fcommit%2F%3Fid%3D23ea57a2a&data=02%7 > > C01%7Cmatan%40mellanox.com%7C3fea370ec31f4d22be8708d6c3ecf74b%7 > > Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636911819926371170&a > > mp;sdata=%2BHLHG6VK2gNLejSHRKLYtS4Qelqg%2FOD%2FUQbZwOIT9%2BA > > %3D&reserved=0 > > " > > When enabling RTE_ETH_DEV_CLOSE_REMOVE, > > the PMD must free all its private resources for the port, in its dev_close > > function. > > It is advised to call the dev_close function in the remove function in > > order to > > support removing a device without closing its ports. > > " > > > > It would be great to complete this migration for the next LTS version, which > > will be 19.11. > > It means the work should be ideally finished during the summer. > > > > The migration to the new behaviour is done in 4 drivers: > > git grep -l RTE_ETH_DEV_CLOSE_REMOVE drivers | cut -d/ -f3 > > ena > > enic > > mlx5 > > vmxnet3 > > > > Following drivers should be migrated: > > ( find drivers/net -mindepth 1 -maxdepth 1 -type d | cut -d/ -f3 ; git grep > > -l > > RTE_ETH_DEV_CLOSE_REMOVE drivers | cut -d/ -f3 ) | sort | uniq -u > > af_packet > > af_xdp > > ark > > atlantic > > avp > > axgbe > > bnx2x > > bnxt > > bonding > > cxgbe > > dpaa > > dpaa2 > > e1000 > > enetc > > failsafe > > fm10k > > i40e > > iavf > > ice > > ifc > > ixgbe > > kni > > liquidio > > mlx4 > > mvneta > > mvpp2 > > netvsc > > nfb > > nfp > > null > > octeontx > > pcap > > qede > > ring > > sfc > > softnic > > szedata2 > > tap > > thunderx > > vdev_netvsc > > vhost > > virtio > > > > Please let's progress smoothly on this topic, thanks. > > > > The concerned maintainers (Cc) can be found with the following command: > > devtools/get-maintainer.sh $(( find drivers/net -mindepth 1 -maxdepth 1 - > > type d | cut -d/ -f-3 ; git grep -l RTE_ETH_DEV_CLOSE_REMOVE drivers ) | > > sort | uniq -u) > > > I have a version still testing