From patchwork Sat Apr 10 14:23:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xueming Li X-Patchwork-Id: 91032 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 367FCA0546; Sat, 10 Apr 2021 16:24:11 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BEFC014127B; Sat, 10 Apr 2021 16:24:10 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 713AB141279 for ; Sat, 10 Apr 2021 16:24:09 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from xuemingl@nvidia.com) with SMTP; 10 Apr 2021 17:24:06 +0300 Received: from nvidia.com (pegasus05.mtr.labs.mlnx [10.210.16.100]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 13AEO6Dw018265; Sat, 10 Apr 2021 17:24:06 +0300 From: Xueming Li To: Thomas Monjalon , Gaetan Rivet Cc: dev@dpdk.org, xuemingl@nvidia.com, Asaf Penso Date: Sat, 10 Apr 2021 14:23:52 +0000 Message-Id: <1618064637-16413-1-git-send-email-xuemingl@nvidia.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1608304614-13908-2-git-send-email-xuemingl@nvidia.com> References: <1608304614-13908-2-git-send-email-xuemingl@nvidia.com> Subject: [dpdk-dev] [PATCH v4 0/5] eal: enable global device syntax by default X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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(-)