From patchwork Wed Jun 7 23:57:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ga=C3=ABtan_Rivet?= X-Patchwork-Id: 25147 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 705593252; Thu, 8 Jun 2017 01:58:06 +0200 (CEST) Received: from mail-wr0-f181.google.com (mail-wr0-f181.google.com [209.85.128.181]) by dpdk.org (Postfix) with ESMTP id A71587CD0 for ; Thu, 8 Jun 2017 01:57:37 +0200 (CEST) Received: by mail-wr0-f181.google.com with SMTP id v104so12033049wrb.0 for ; Wed, 07 Jun 2017 16:57:37 -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 :in-reply-to:references; bh=Yrdysc14MbEeqlnm6Hk3pKbjPcw33eJJqtPJ3n/Uv+Q=; b=k/kV/unhaQI4WZXW6u8lNvCBgYshbX7YeBXdC6lguAB1XKVudvYcddjEFuARSO/E1i M1fMOCJHeJZHLzBJ99zrLRxnxa32kEuqQeRVrG1NrA7I/t5EYB89PRfZmoIZwZE+yUNI iflvYPxZIJxM9al29GOCqcLtkLiIhAsqpdzh3s+aeZmQHuSUPa61/IU5PXFbUdgHi9s5 Ck/IgTU3ruZKIw/R9H8yDKxuGEVQgxApAv8afTdq/a9tlaYvvbUaEsqyIJCcsDCSpYL6 Jt5fz9qocCilT7/We+6c94Hzfxvi5XFjR4Rs6/VIPe/eIUjrtQzOYJiL11Ht3xZpOlY0 Y2UQ== 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:in-reply-to:references; bh=Yrdysc14MbEeqlnm6Hk3pKbjPcw33eJJqtPJ3n/Uv+Q=; b=HLTH4ACMWl/Obz4uCMzr0cWLus/buW3kYClibTLjVbW8Kw1iK13khKUdq+QN6XIvGO yRune4gV0qwh9EzvZHgQoT7usxSDLl1Uh7N+GWF6lTdkNRZfT5OyGuivS0Y8Bf9GZ5oF eptpf95fAbQkKL0/loB31F3crynQ5PQ+6sX2naTRKHysFP3298LmXH6FxkmcINE7t2Cp gUHxIoouvKq3Qkbd5/WAVDdKvSN0buy41T1ig0jIA2c+BkZlZ5pQN8V8KTXl9Fp0ycNp QvJuLQZdcgBOoeTIygheZ2Qh4FOFV8VP7y4CcqgTryiX6GIRyC2kiTcoDK873ctnkvYb ZxSQ== X-Gm-Message-State: AODbwcBesD30V3rhSEPlG2+i5Po7upwrwtJSytdPdZ5k4yzydszNMs69 A3OwRvqgsbCDadvCJYM= X-Received: by 10.223.145.10 with SMTP id j10mr26609260wrj.141.1496879857079; Wed, 07 Jun 2017 16:57:37 -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 185sm22397056wmp.1.2017.06.07.16.57.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 07 Jun 2017 16:57:35 -0700 (PDT) From: Gaetan Rivet To: dev@dpdk.org Cc: Gaetan Rivet Date: Thu, 8 Jun 2017 01:57:01 +0200 Message-Id: <2ea24f4b9877bad9cf225e2c8270d7f5650d78cb.1496876859.git.gaetan.rivet@6wind.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: References: In-Reply-To: References: Subject: [dpdk-dev] [PATCH v4 15/19] devargs: generic device types 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" rte_devargs now represents any device from any bus. The related devtypes do not identify a bus anymore, only which scan policy the device subscribes to. The bus itself is identified by a bus handle previously introduced. Signed-off-by: Gaetan Rivet --- lib/librte_eal/common/eal_common_devargs.c | 4 ++-- lib/librte_eal/common/eal_common_options.c | 13 +++-------- lib/librte_eal/common/eal_common_pci.c | 6 ++--- lib/librte_eal/common/eal_common_vdev.c | 1 - lib/librte_eal/common/include/rte_devargs.h | 6 ++--- test/test/test_devargs.c | 36 +++++++++++++++-------------- 6 files changed, 30 insertions(+), 36 deletions(-) diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c index 51ffb45..d423125 100644 --- a/lib/librte_eal/common/eal_common_devargs.c +++ b/lib/librte_eal/common/eal_common_devargs.c @@ -115,14 +115,14 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str) ret = snprintf(devargs->name, sizeof(devargs->name), "%s", buf); if (ret < 0 || ret >= (int)sizeof(devargs->name)) goto fail; - if (devargs->type == RTE_DEVTYPE_WHITELISTED_PCI) { + if (devargs->type == RTE_DEVTYPE_WHITELISTED) { if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) { bus->conf.scan_mode = RTE_BUS_SCAN_WHITELIST; } else if (bus->conf.scan_mode == RTE_BUS_SCAN_BLACKLIST) { fprintf(stderr, "ERROR: incompatible device type and bus scan mode\n"); goto fail; } - } else if (devargs->type == RTE_DEVTYPE_BLACKLISTED_PCI) { + } else if (devargs->type == RTE_DEVTYPE_BLACKLISTED) { if (bus->conf.scan_mode == RTE_BUS_SCAN_UNDEFINED) { bus->conf.scan_mode = RTE_BUS_SCAN_BLACKLIST; } else if (bus->conf.scan_mode == RTE_BUS_SCAN_WHITELIST) { diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index f470195..075b0ea 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -798,14 +798,14 @@ eal_parse_common_option(int opt, const char *optarg, switch (opt) { /* blacklist */ case 'b': - if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, + if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED, optarg) < 0) { return -1; } break; /* whitelist */ case 'w': - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, optarg) < 0) { return -1; } @@ -901,7 +901,7 @@ eal_parse_common_option(int opt, const char *optarg, break; case OPT_VDEV_NUM: - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, + if (rte_eal_devargs_add(RTE_DEVTYPE_UNDEFINED, optarg) < 0) { return -1; } @@ -1025,13 +1025,6 @@ eal_check_common_options(struct internal_config *internal_cfg) return -1; } - if (rte_eal_devargs_type_count(RTE_DEVTYPE_WHITELISTED_PCI) != 0 && - rte_eal_devargs_type_count(RTE_DEVTYPE_BLACKLISTED_PCI) != 0) { - RTE_LOG(ERR, EAL, "Options blacklist (-b) and whitelist (-w) " - "cannot be used at the same time\n"); - return -1; - } - return 0; } diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index a31e490..b4f8056 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -200,7 +200,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr, /* no initialization when blacklisted, return without error */ if (dev->device.devargs != NULL && dev->device.devargs->type == - RTE_DEVTYPE_BLACKLISTED_PCI) { + RTE_DEVTYPE_BLACKLISTED) { RTE_LOG(INFO, EAL, " Device is blacklisted, not" " initializing\n"); return 1; @@ -388,7 +388,7 @@ rte_pci_probe(void) int probe_all = 0; int ret = 0; - if (rte_eal_devargs_type_count(RTE_DEVTYPE_WHITELISTED_PCI) == 0) + if (rte_pci_bus.bus.conf.scan_mode != RTE_BUS_SCAN_WHITELIST) probe_all = 1; FOREACH_DEVICE_ON_PCIBUS(dev) { @@ -403,7 +403,7 @@ rte_pci_probe(void) if (probe_all) ret = pci_probe_all_drivers(dev); else if (devargs != NULL && - devargs->type == RTE_DEVTYPE_WHITELISTED_PCI) + devargs->type == RTE_DEVTYPE_WHITELISTED) ret = pci_probe_all_drivers(dev); if (ret < 0) { RTE_LOG(ERR, EAL, "Requested device " PCI_PRI_FMT diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c index c56fb6d..d921345 100644 --- a/lib/librte_eal/common/eal_common_vdev.c +++ b/lib/librte_eal/common/eal_common_vdev.c @@ -181,7 +181,6 @@ alloc_devargs(const char *name, const char *args) if (!devargs) return NULL; - devargs->type = RTE_DEVTYPE_VIRTUAL; devargs->bus = rte_bus_from_name(VIRTUAL_BUS_NAME); if (args) devargs->args = strdup(args); diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h index 6a26d3d..6e9e134 100644 --- a/lib/librte_eal/common/include/rte_devargs.h +++ b/lib/librte_eal/common/include/rte_devargs.h @@ -56,9 +56,9 @@ extern "C" { * Type of generic device */ enum rte_devtype { - RTE_DEVTYPE_WHITELISTED_PCI, - RTE_DEVTYPE_BLACKLISTED_PCI, - RTE_DEVTYPE_VIRTUAL, + RTE_DEVTYPE_UNDEFINED, + RTE_DEVTYPE_WHITELISTED, + RTE_DEVTYPE_BLACKLISTED, }; /** diff --git a/test/test/test_devargs.c b/test/test/test_devargs.c index 18f54ed..149c9c9 100644 --- a/test/test/test_devargs.c +++ b/test/test/test_devargs.c @@ -64,30 +64,32 @@ test_devargs(void) TAILQ_INIT(&devargs_list); /* test valid cases */ - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "08:00.1") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "08:00.1") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "0000:5:00.0") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "0000:5:00.0") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, "04:00.0,arg=val") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "04:00.0,arg=val") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_BLACKLISTED_PCI, "0000:01:00.1") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "0000:01:00.1") < 0) goto fail; - if (rte_eal_devargs_type_count(RTE_DEVTYPE_WHITELISTED_PCI) != 2) + if (rte_eal_devargs_type_count(RTE_DEVTYPE_WHITELISTED) != 4) goto fail; - if (rte_eal_devargs_type_count(RTE_DEVTYPE_BLACKLISTED_PCI) != 2) + if (rte_eal_devargs_type_count(RTE_DEVTYPE_BLACKLISTED) != 0) goto fail; - if (rte_eal_devargs_type_count(RTE_DEVTYPE_VIRTUAL) != 0) + if (rte_eal_devargs_type_count(RTE_DEVTYPE_UNDEFINED) != 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "net_ring0") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_UNDEFINED, "net_ring0") < 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "net_ring1,key=val,k2=val2") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_UNDEFINED, + "net_ring1,key=val,k2=val2") < 0) goto fail; - if (rte_eal_devargs_type_count(RTE_DEVTYPE_VIRTUAL) != 2) + if (rte_eal_devargs_type_count(RTE_DEVTYPE_UNDEFINED) != 2) goto fail; free_devargs_list(); /* check virtual device with argument parsing */ - if (rte_eal_devargs_add(RTE_DEVTYPE_VIRTUAL, "net_ring1,k1=val,k2=val2") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_UNDEFINED, + "net_ring1,k1=val,k2=val2") < 0) goto fail; devargs = TAILQ_FIRST(&devargs_list); if (strncmp(devargs->name, "net_ring1", @@ -98,7 +100,7 @@ test_devargs(void) free_devargs_list(); /* check PCI device with empty argument parsing */ - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "04:00.1") < 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "04:00.1") < 0) goto fail; devargs = TAILQ_FIRST(&devargs_list); if (strcmp(devargs->name, "04:00.1") != 0) @@ -108,15 +110,15 @@ test_devargs(void) free_devargs_list(); /* test error case: bad PCI address */ - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "08:1") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "08:1") == 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "00.1") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "00.1") == 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "foo") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "foo") == 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, ",") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, ",") == 0) goto fail; - if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED_PCI, "000f:0:0") == 0) + if (rte_eal_devargs_add(RTE_DEVTYPE_WHITELISTED, "000f:0:0") == 0) goto fail; devargs_list = save_devargs_list;