mbox series

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

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

Message

Xueming Li March 30, 2021, 12:15 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 callback 
- 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.

[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


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 +-
 drivers/bus/pci/pci_common.c                 |  1 +
 drivers/bus/pci/pci_params.c                 | 48 +++++++++++++++++
 drivers/bus/pci/private.h                    | 14 +++++
 drivers/bus/vdev/vdev.c                      | 10 ++--
 drivers/bus/vdev/vdev_params.c               | 43 +++++++++++++++
 drivers/bus/vdev/vdev_private.h              | 15 ++++++
 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   | 57 ++++++++++++++------
 lib/librte_eal/common/hotplug_mp.c           |  6 +--
 lib/librte_eal/include/rte_bus.h             | 19 +++++++
 lib/librte_eal/include/rte_devargs.h         | 18 +++++--
 lib/librte_eal/rte_eal_exports.def           |  1 +
 lib/librte_eal/version.map                   |  1 +
 lib/librte_ethdev/rte_ethdev.c               |  8 +--
 lib/librte_kvargs/rte_kvargs.c               | 20 +++++++
 lib/librte_kvargs/rte_kvargs.h               | 21 ++++++++
 lib/librte_kvargs/version.map                |  1 +
 22 files changed, 263 insertions(+), 48 deletions(-)
  

Comments

Gaƫtan Rivet March 31, 2021, 8:23 a.m. UTC | #1
On Tue, Mar 30, 2021, at 14:15, Xueming Li wrote:
> 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 callback 
> - 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.
> 
> [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
> 
> 
> 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 +-
>  drivers/bus/pci/pci_common.c                 |  1 +
>  drivers/bus/pci/pci_params.c                 | 48 +++++++++++++++++
>  drivers/bus/pci/private.h                    | 14 +++++
>  drivers/bus/vdev/vdev.c                      | 10 ++--
>  drivers/bus/vdev/vdev_params.c               | 43 +++++++++++++++
>  drivers/bus/vdev/vdev_private.h              | 15 ++++++
>  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   | 57 ++++++++++++++------
>  lib/librte_eal/common/hotplug_mp.c           |  6 +--
>  lib/librte_eal/include/rte_bus.h             | 19 +++++++
>  lib/librte_eal/include/rte_devargs.h         | 18 +++++--
>  lib/librte_eal/rte_eal_exports.def           |  1 +
>  lib/librte_eal/version.map                   |  1 +
>  lib/librte_ethdev/rte_ethdev.c               |  8 +--
>  lib/librte_kvargs/rte_kvargs.c               | 20 +++++++
>  lib/librte_kvargs/rte_kvargs.h               | 21 ++++++++
>  lib/librte_kvargs/version.map                |  1 +
>  22 files changed, 263 insertions(+), 48 deletions(-)
> 
> -- 
> 2.25.1
> 
>

Hello,

For the series:
Reviewed-by: Gaetan Rivet <grive@u256.net>