mbox series

[v4,0/5] eal: enable global device syntax by default

Message ID 1618064637-16413-1-git-send-email-xuemingl@nvidia.com (mailing list archive)
Headers show
Series eal: enable global device syntax by default | expand

Message

Xueming Li April 10, 2021, 2:23 p.m. UTC
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:
 - Inital 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


[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


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       |  6 ++
 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             | 18 ++++
 lib/librte_eal/include/rte_devargs.h         | 22 ++++-
 lib/librte_eal/rte_eal_exports.def           |  1 +
 lib/librte_eal/version.map                   |  1 +
 lib/librte_ethdev/rte_ethdev.c               |  9 +-
 lib/librte_kvargs/rte_kvargs.c               | 20 +++++
 lib/librte_kvargs/rte_kvargs.h               | 21 +++++
 lib/librte_kvargs/version.map                |  3 +
 21 files changed, 245 insertions(+), 52 deletions(-)