The new Global Device Syntax [1] is used to identify a device with full bus, class and driver description, example: -a bus=pci,addr=82:00.0/class=eth/driver=mlx5,...
This patchset fixes bugs and enable global device syntax with backward compatibility by: - unify devargs memory buffer cleanup - parse name from bus driver callback api - try new global syntax parsing firstly and fallback to legacy parsing. History: V1: - Initial version V2: - add devargs.src as complete source dev string - change devargs.data to scratch buffer - add rte_devargs_free() to release scratch memory - change name policy to align with rte_eth_iterator_init() - remove PCI bus fix as name already resolved in rte_devargs_parse(). V3: - remove devargs.src - rename rte_devargs_free() to rte_devargs_reset() - add bus callback api to resolve devargs. V4: - add RTE_DEVARGS_KEY_BUS/CLASS/DIRVER macro - parsing "name" by default if no bus devargs parsing callback - Minor fixes suggested by Ray and Thomas v5: - Update relrease notes - Remove NULL support of kvargs_get function - Rebased on latest code - Small updates according to review comments [1] Global Device Syntax: https://www.dpdk.org/wp-content/uploads/sites/35/2018/10/am-07-DPDK-hotplug-20180905.pdf [2] RFC: http://patchwork.dpdk.org/project/dpdk/list/?series=14378 [3] V1: http://patchwork.dpdk.org/project/dpdk/list/?series=14610 [4] V2: http://patchwork.dpdk.org/project/dpdk/list/?series=14816 [5] V3: http://patchwork.dpdk.org/project/dpdk/list/?series=15979 [6] v4: http://patchwork.dpdk.org/project/dpdk/list/?series=16267 Xueming Li (5): devargs: unify scratch buffer storage devargs: fix memory leak on parsing error kvargs: add get by key function bus: add device arguments name parsing API devargs: parse global device syntax app/test-pmd/config.c | 3 +- app/test-pmd/testpmd.c | 5 +- doc/guides/rel_notes/release_21_05.rst | 7 ++ drivers/bus/pci/pci_common.c | 1 + drivers/bus/pci/pci_params.c | 47 ++++++++++ drivers/bus/pci/private.h | 14 +++ drivers/bus/vdev/vdev.c | 9 +- drivers/net/failsafe/failsafe_args.c | 3 +- drivers/net/failsafe/failsafe_eal.c | 2 +- examples/multi_process/hotplug_mp/commands.c | 6 +- lib/librte_eal/common/eal_common_dev.c | 9 +- lib/librte_eal/common/eal_common_devargs.c | 91 +++++++++++++++----- lib/librte_eal/common/hotplug_mp.c | 6 +- lib/librte_eal/include/rte_bus.h | 17 ++++ lib/librte_eal/include/rte_devargs.h | 22 ++++- lib/librte_eal/version.map | 1 + lib/librte_ethdev/rte_ethdev.c | 9 +- lib/librte_kvargs/rte_kvargs.c | 15 ++++ lib/librte_kvargs/rte_kvargs.h | 20 +++++ lib/librte_kvargs/version.map | 3 + 20 files changed, 238 insertions(+), 52 deletions(-) -- 2.25.1