From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f178.google.com (mail-wr0-f178.google.com [209.85.128.178]) by dpdk.org (Postfix) with ESMTP id 331593254 for ; Fri, 7 Jul 2017 02:04:47 +0200 (CEST) Received: by mail-wr0-f178.google.com with SMTP id r103so24308100wrb.0 for ; Thu, 06 Jul 2017 17:04:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DJxYwpyHoikDN2QJuHOqgDza9FSbKYMl5ZFQ0Fvtk+Y=; b=l2S0VoXMZV7BCIrtfVslnRfmO+SSI1Zubbchh8eaBPY7rQ3iu2pmvxwVp9Z6acQJGG 1wHnLgXR6uEviZRDYKVOr0MnV5FIhZYOpe6Xrq9LQheM+AjLNJ1/YxjUhLC1XFhYSsmX Npay+kW8wqOj1CsE0AGiFtPg/bU1D5wMJFEPtxnF/x6PZwDFr2RVRQgM0x+CR41VSaHG Ksdd5L6jHU0l2hIl5E4eCYoA/ilo2miyJiGH9U4c0pvGI4OtU51rBoOcyexG1kQHOWB5 M/BkTzLDL/xF1Xf7Jk1PrNA1sn093Vt4SMLZynAopdNlP93xAlpWjtd0/0NwMQMb010b igxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DJxYwpyHoikDN2QJuHOqgDza9FSbKYMl5ZFQ0Fvtk+Y=; b=NZ0OB33SJcPV+DEUPzNkJFOuwmAI41Ws5ORKU/psj4GpXOa4DK+woKZTBbWH5+SeKN M2XObR6bgImY2zOjjAlch8mHuvRPgjdrFqxDT9ZTFWNDVhMfdKzAXJj7FVpANpzpuZG7 CX30L/9Uzah+cmldT0bjRer76cOzN4lWXigp/62KiZZwvGxK57wcgl/UAUhWX/t4Qf0x WSGEnXA3pMaDEAGNugCCviyH3yGc86+klHSZNiTO3SHRJyLToYGDf5mntTW6FQabfKLN u0diXgxHQgfKjb42jhgqn25HQJzbTBeIrbQTSQPf9LnL5koCM+h08JXzY2BoDTg9cHJG VQlA== X-Gm-Message-State: AKS2vOznwTAYrpFJym44TT0a3aqU4qtNP58B9a1Ke7M3S0eIf4E0fv73 0EyN0VxZ7E/FydopZQ0= X-Received: by 10.223.173.83 with SMTP id p77mr40441336wrc.25.1499385887394; Thu, 06 Jul 2017 17:04:47 -0700 (PDT) Received: from bidouze.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id b197sm1111520wmb.4.2017.07.06.17.04.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 06 Jul 2017 17:04:46 -0700 (PDT) From: Gaetan Rivet To: dev@dpdk.org Cc: Gaetan Rivet , Jan Blunck , Stephen Hemminger , Bruce Richardson Date: Fri, 7 Jul 2017 02:04:17 +0200 Message-Id: X-Mailer: git-send-email 2.1.4 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v7 00/17] Generic devargs parsing X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Jul 2017 00:04:48 -0000 The second part of the work outlined in [1] and [2]. The first part is at [3]. In this patchset, the representation of devices in rte_devargs is made generic to remove some dependencies of the EAL on specific buses implementations. Following the device types being characterized by their bus, the DEVTYPE flags are updated not to reference virtual / PCI devices anymore. The device type was one of two elements expressed by these flags and the bus handle only covers one. The second is the bus scan behavior, namely "whitelist mode" or "blacklist mode". These two modes are consequently introduced as bus scan policies, expressed within a bus configuration structure. Finally, once all specialized parts have been removed from rte_devargs, a cleaner rte_devargs parser is proposed. This parser should allow following further changes without having to update its API, and is already available for third parties to build rte_devargs structures from device declarations. With this patchset, it is now possible to use any device type on the EAL command line, with either the -w or -b parameters. The bus name can be used to explicitly ask for one bus to handle a device if there is any ambiguity. Buses needs only to implement the "parse" method for their devices to be declared in this way. [1]: http://dpdk.org/ml/archives/dev/2017-May/065634.html [2]: http://dpdk.org/ml/archives/dev/2017-May/065670.html [3]: http://dpdk.org/ml/archives/dev/2017-May/066341.html This patchset depends on: [PATCH 0/9] rte_bus parse API http://dpdk.org/ml/archives/dev/2017-May/066341.html http://dpdk.org/dev/patchwork/patch/24499/ v1 -> v2: * fix PCI whitelist mode v2 -> v3: * Rebase the series on the new plug / unplug API v3 -> v4: * Fix rte_devargs parsing helper * Introduce new rte_devargs clone function * Introduce new rte_devargs release function * Fix test application for rte_devargs. TODO: rewrite complete rte_devargs autotest. * Fix a few rte_pci references. * Update EAL command line help for -w / -b v5: * Fix integration issue with new arbitrary bus name parsing. v6: * Follow new hotplug & parse API * Export rte_eal_devargs_parse symbol * Improve the devargs parsing in regard to possible bus / dev naming ambiguities. * A few code style issues fixed. * The EAL dependency on vdev is not fixed anymore It is beyond the scope of this patchset. v7: * Remembered to include the example/ethtool header fix. * Use new RTE_DEV_NAME_MAX_LEN macro to define rte_devargs name field len. * Fix virtio reference to old "PCI" bus name. * rte_eal_devargs_parse is now set as EXPERIMENTAL * Previous rte_devargs API extensions (clone, removal) are removed from this patchset. They will be introduced when needed. Gaetan Rivet (16): net/bonding: properly reference PCI header net/bnxt: properly reference PCI header net/mlx5: properly reference PCI header net/e1000: properly reference PCI header net/ixgbe: properly reference PCI header net/sfc: properly reference PCI header app/testpmd: properly reference PCI header test: properly reference PCI header dev: device kernel module is a device attribute bus: introduce bus scan policies devargs: parse bus policies devargs: generic device representation net/virtio: do not reference device type devargs: generic device types devargs: introduce cleaner parsing helper eal: change whitelist / blacklist command line doc Thomas Monjalon (1): examples/ethtool: properly reference PCI header app/test-pmd/testpmd.c | 9 +- app/test-pmd/testpmd.h | 2 + doc/guides/rel_notes/deprecation.rst | 5 + drivers/net/bnxt/bnxt.h | 1 + drivers/net/bonding/rte_eth_bond_args.c | 1 + drivers/net/e1000/e1000_ethdev.h | 1 + drivers/net/ixgbe/ixgbe_ethdev.h | 1 + drivers/net/mlx5/mlx5.h | 1 + drivers/net/sfc/sfc.h | 1 + drivers/net/virtio/virtio_pci.c | 5 +- examples/ethtool/lib/rte_ethtool.c | 2 + lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_devargs.c | 128 +++++++++++++----------- lib/librte_eal/common/eal_common_options.c | 31 +++--- lib/librte_eal/common/eal_common_pci.c | 15 +-- lib/librte_eal/common/eal_common_vdev.c | 12 +-- lib/librte_eal/common/eal_options.h | 8 +- lib/librte_eal/common/include/rte_bus.h | 17 ++++ lib/librte_eal/common/include/rte_dev.h | 12 +++ lib/librte_eal/common/include/rte_devargs.h | 42 ++++---- lib/librte_eal/common/include/rte_pci.h | 9 -- lib/librte_eal/common/include/rte_vdev.h | 2 +- lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + test/test/test_devargs.c | 45 ++++----- test/test/virtual_pmd.c | 1 + 25 files changed, 198 insertions(+), 155 deletions(-) -- 2.1.4