On Monday 27 February 2017 06:39 PM, Jan Blunck wrote:
On Sat, Feb 25, 2017 at 11:28 AM, Jan Blunck <jblu...@infradead.org> wrote:
With the rte_bus infrastructure present in 17.02 it is possible to refactor
the virtual device probing into a bus. This series also introduces the
rte_vdev_device to better keep track of devices.
This patchset depends on:
http://dpdk.org/dev/patchwork/patch/20416/
http://dpdk.org/dev/patchwork/patch/20417/
Changes since version 2:
* implicit bus registration through rte_eal_vdrv_register()
On a second thought I don't think that this is correct though since it
opens up the possibility of racing an alternative "virtual" bus. I
don't think that this is a good thing though. I'll fix this in v4.
Thoughts?
I prefer the RTE_REGISTER* way.
The issue of duplicate bus remains whether we use the macro or the
implicit way.
If you use RTE_*, do you think that duplicate registration issue
is worth fixing?
(It would mean rte_bus_register to return error which the caller
would then need to handle).
Thanks,
Jan
* explicit delay probing of virtual bus in rte_bus_probe()
* addition of rte_vdev_device_args() helper
* make virtual driver probe and remove take rte_vdev_device
Changes since version 1:
* addition of rte_vdev_device_name() helper
* removed rte_eal_dev_init() from *.map files
* use SOCKET_ID_ANY
Jan Blunck (10):
eal: probe legacy PCI devices before other bus devices
eal: probe new virtual bus after other bus devices
eal: move virtual device probing into a bus
eal: remove unused rte_eal_dev_init()
eal: Refactor vdev driver probe/remove
eal: add struct rte_vdev_device
eal: add virtual device name helper function
eal: add virtual device arguments helper function
eal: make virtual bus use rte_vdev_device
eal: make virtual driver probe and remove take rte_vdev_device
drivers/crypto/null/null_crypto_pmd.c | 18 +-
drivers/net/af_packet/rte_eth_af_packet.c | 11 +-
drivers/net/bonding/rte_eth_bond_pmd.c | 13 +-
drivers/net/mpipe/mpipe_tilegx.c | 10 +-
drivers/net/null/rte_eth_null.c | 13 +-
drivers/net/pcap/rte_eth_pcap.c | 12 +-
drivers/net/ring/rte_eth_ring.c | 9 +-
drivers/net/tap/rte_eth_tap.c | 10 +-
drivers/net/vhost/rte_eth_vhost.c | 10 +-
drivers/net/virtio/virtio_user_ethdev.c | 18 +-
drivers/net/xenvirt/rte_eth_xenvirt.c | 9 +-
lib/librte_eal/bsdapp/eal/eal.c | 9 +-
lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 -
lib/librte_eal/common/eal_common_bus.c | 16 +-
lib/librte_eal/common/eal_common_dev.c | 28 ---
lib/librte_eal/common/eal_common_vdev.c | 259 +++++++++++++++++++++---
lib/librte_eal/common/include/rte_dev.h | 5 -
lib/librte_eal/common/include/rte_vdev.h | 26 ++-
lib/librte_eal/linuxapp/eal/eal.c | 9 +-
lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 -
20 files changed, 355 insertions(+), 132 deletions(-)
--
2.7.4