From patchwork Tue Aug 26 14:12:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 243 Return-Path: Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by dpdk.org (Postfix) with ESMTP id 6FD16B3C0 for ; Tue, 26 Aug 2014 16:08:26 +0200 (CEST) Received: by mail-wg0-f51.google.com with SMTP id b13so14646166wgh.22 for ; Tue, 26 Aug 2014 07:12:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=cwGZ0nuqDXVCNDzOsyv0jt8e/+7af+UOf2p1US+CZcI=; b=NtnZ8ojHilqhz29JgwSzCixaplcln6pbPCVWpq5dbmkRfk7bAdJhK6C48TwsacsFj5 5aRoEjHrfAIRt6Dpj4iWsGCCK90PLemRZk+duTP/eBw6Tnx+T7mglbyNvVrVxiWUXN/e bpRdv6Sfinjh4csc4Qzfl5Yb/uN89CEPm62zN24ODI33O+MZu5JSoeT4uiLSfl8MzIjm iUUoUj43QH+w3KuTUIokiwwbY1Rkpm1lIJg1cYUi44yND9KkfFOwIimh3DCYNTndOYwP ucStvPOc4KYblY4j4bQYfGDyW0LFAXywcGdbEcxSpEhz3yPmH5XB4iuJ6xz9o+l1kquJ 56ow== X-Gm-Message-State: ALoCoQlFoWTvIKR+jnBmSoW7218Usa/G3u+trRZuYWTJfuYXYC9hzREiqnXfsp++eoclK+HNUPV8 X-Received: by 10.180.149.197 with SMTP id uc5mr12289812wib.75.1409062346499; Tue, 26 Aug 2014 07:12:26 -0700 (PDT) Received: from alcyon.dev.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by mx.google.com with ESMTPSA id cy9sm12568145wib.18.2014.08.26.07.12.25 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Aug 2014 07:12:25 -0700 (PDT) From: David Marchand To: dev@dpdk.org Date: Tue, 26 Aug 2014 16:12:17 +0200 Message-Id: <1409062338-26477-3-git-send-email-david.marchand@6wind.com> X-Mailer: git-send-email 1.7.10.4 In-Reply-To: <1409062338-26477-1-git-send-email-david.marchand@6wind.com> References: <1409062338-26477-1-git-send-email-david.marchand@6wind.com> Subject: [dpdk-dev] [PATCH 2/3] Revert "eal: support link bonding device initialization" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Aug 2014 14:08:26 -0000 This reverts commit a155d430119d947d3cb03136ce50924a642dbfe0. Signed-off-by: David Marchand --- lib/librte_eal/bsdapp/eal/eal.c | 10 +---- lib/librte_eal/common/eal_common_dev.c | 58 +++++++++------------------ lib/librte_eal/common/eal_common_pci.c | 3 -- lib/librte_eal/common/include/eal_private.h | 7 ++++ lib/librte_eal/common/include/rte_dev.h | 14 +------ lib/librte_eal/linuxapp/eal/eal.c | 11 +---- 6 files changed, 29 insertions(+), 74 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index dad9e0c..6ca8758 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -898,7 +898,7 @@ rte_eal_init(int argc, char **argv) rte_eal_mcfg_complete(); - if (rte_eal_dev_init(PMD_INIT_PRE_PCI_PROBE) < 0) + if (rte_eal_dev_init() < 0) rte_panic("Cannot init pmd devices\n"); RTE_LCORE_FOREACH_SLAVE(i) { @@ -930,14 +930,6 @@ rte_eal_init(int argc, char **argv) rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MASTER); rte_eal_mp_wait_lcore(); - /* Probe & Initialize PCI devices */ - if (rte_eal_pci_probe()) - rte_panic("Cannot probe PCI\n"); - - /* Initialize any outstanding devices */ - if (rte_eal_dev_init(PMD_INIT_POST_PCI_PROBE) < 0) - rte_panic("Cannot init pmd devices\n"); - return fctret; } diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c index 1194419..eae5656 100644 --- a/lib/librte_eal/common/eal_common_dev.c +++ b/lib/librte_eal/common/eal_common_dev.c @@ -62,7 +62,7 @@ rte_eal_driver_unregister(struct rte_driver *driver) } int -rte_eal_dev_init(uint8_t init_pri) +rte_eal_dev_init(void) { struct rte_devargs *devargs; struct rte_driver *driver; @@ -80,52 +80,30 @@ rte_eal_dev_init(uint8_t init_pri) continue; TAILQ_FOREACH(driver, &dev_driver_list, next) { - /* RTE_DEVTYPE_VIRTUAL can only be a virtual or bonded device, - * virtual devices are initialized pre PCI probing and bonded - * device are post pci probing */ - if ((driver->type == PMD_VDEV && init_pri == - PMD_INIT_PRE_PCI_PROBE) || - (driver->type == PMD_BDEV && init_pri == - PMD_INIT_POST_PCI_PROBE)) { + if (driver->type != PMD_VDEV) + continue; - /* search a driver prefix in virtual device name */ - if (!strncmp(driver->name, devargs->virtual.drv_name, - strlen(driver->name))) { - printf("init (%u) %s\n", init_pri, devargs->virtual.drv_name); - driver->init(devargs->virtual.drv_name, - devargs->args); - break; - } + /* search a driver prefix in virtual device name */ + if (!strncmp(driver->name, devargs->virtual.drv_name, + strlen(driver->name))) { + driver->init(devargs->virtual.drv_name, + devargs->args); + break; } } - /* If initializing pre PCI probe, then we don't expect a bonded driver - * to be found */ - if (init_pri == PMD_INIT_PRE_PCI_PROBE && - strncmp(PMD_BOND_NAME, devargs->virtual.drv_name, - strlen(PMD_BOND_NAME)) != 0) { - if (driver == NULL) { - rte_panic("no driver found for virtual device %s\n", - devargs->virtual.drv_name); - } - } else if (init_pri == PMD_INIT_POST_PCI_PROBE && - strncmp(PMD_BOND_NAME, devargs->virtual.drv_name, - strlen(PMD_BOND_NAME)) == 0) { - if (driver == NULL) { - rte_panic("no driver found for bonded device %s\n", - devargs->virtual.drv_name); - } + if (driver == NULL) { + rte_panic("no driver found for %s\n", + devargs->virtual.drv_name); } } - /* Once the vdevs are initialized, start calling all the pdev drivers */ - if (init_pri == PMD_INIT_PRE_PCI_PROBE) { - TAILQ_FOREACH(driver, &dev_driver_list, next) { - if (driver->type != PMD_PDEV) - continue; - /* PDEV drivers don't get passed any parameters */ - driver->init(NULL, NULL); - } + /* Once the vdevs are initalized, start calling all the pdev drivers */ + TAILQ_FOREACH(driver, &dev_driver_list, next) { + if (driver->type != PMD_PDEV) + continue; + /* PDEV drivers don't get passed any parameters */ + driver->init(NULL, NULL); } return 0; } diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index c637361..af809a8 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -150,9 +150,6 @@ rte_eal_pci_probe(void) probe_all = 1; TAILQ_FOREACH(dev, &pci_device_list, next) { - /* check if device has already been initialized */ - if (dev->driver != NULL) - continue; /* set devargs in PCI structure */ devargs = pci_devargs_lookup(dev); diff --git a/lib/librte_eal/common/include/eal_private.h b/lib/librte_eal/common/include/eal_private.h index b440ffb..232fcec 100644 --- a/lib/librte_eal/common/include/eal_private.h +++ b/lib/librte_eal/common/include/eal_private.h @@ -196,4 +196,11 @@ int rte_eal_intr_init(void); */ int rte_eal_alarm_init(void); +/** + * This function initialises any virtual devices + * + * This function is private to the EAL. + */ +int rte_eal_dev_init(void); + #endif /* _EAL_PRIVATE_H_ */ diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index d89f1a5..f7e3a10 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -62,16 +62,6 @@ typedef int (rte_dev_init_t)(const char *name, const char *args); enum pmd_type { PMD_VDEV = 0, PMD_PDEV = 1, - PMD_BDEV = 2, /**< Poll Mode Driver Bonded Device*/ -}; - -#define PMD_BOND_NAME "eth_bond" - -/** - * Driver initialization */ -enum pmd_init_priority { - PMD_INIT_PRE_PCI_PROBE = 0, - PMD_INIT_POST_PCI_PROBE = 1, }; /** @@ -103,9 +93,9 @@ void rte_eal_driver_register(struct rte_driver *driver); void rte_eal_driver_unregister(struct rte_driver *driver); /** - * Initialize all the registered drivers in this process + * Initalize all the registered drivers in this process */ -int rte_eal_dev_init(uint8_t init_priority); +int rte_eal_dev_init(void); #define PMD_REGISTER_DRIVER(d)\ void devinitfn_ ##d(void);\ diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index 884aa9b..392bedf 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -75,7 +75,6 @@ #include #include #include -#include #include "eal_private.h" #include "eal_thread.h" @@ -1178,7 +1177,7 @@ rte_eal_init(int argc, char **argv) RTE_LOG(DEBUG, EAL, "Master core %u is ready (tid=%x)\n", rte_config.master_lcore, (int)thread_id); - if (rte_eal_dev_init(PMD_INIT_PRE_PCI_PROBE) < 0) + if (rte_eal_dev_init() < 0) rte_panic("Cannot init pmd devices\n"); RTE_LCORE_FOREACH_SLAVE(i) { @@ -1208,14 +1207,6 @@ rte_eal_init(int argc, char **argv) rte_eal_mp_remote_launch(sync_func, NULL, SKIP_MASTER); rte_eal_mp_wait_lcore(); - /* Probe & Initialize PCI devices */ - if (rte_eal_pci_probe()) - rte_panic("Cannot probe PCI\n"); - - /* Initialize any outstanding devices */ - if (rte_eal_dev_init(PMD_INIT_POST_PCI_PROBE) < 0) - rte_panic("Cannot init pmd devices\n"); - return fctret; }