From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pd0-f181.google.com (mail-pd0-f181.google.com [209.85.192.181]) by dpdk.org (Postfix) with ESMTP id 4FE2FC486 for ; Tue, 30 Jun 2015 10:27:12 +0200 (CEST) Received: by pdbep18 with SMTP id ep18so2208179pdb.1 for ; Tue, 30 Jun 2015 01:27:11 -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:cc:subject:date:message-id:in-reply-to :references; bh=HSNros8jX1A64lTGHe6wOjoB8nBSr4GGaj/RAOLrdq8=; b=GV9DeLjhyAngp3J2lwMAYFyQU3QKyRDal/lWMQ3W056f6qvjFHrLxO0SP9Znk4D01U 4hv4ujg+uzHwi93HJUz7TOeJp/psn3rRxtPrsw4rq9MG48dxZ+O8LwJaa7Fqr3Yu2giv Zrre1ogAG6iTHGBjEQfuefncbRY0dsiGgvg72w807Nu30x1v6xgdODEOl0+XsnZ2P8NG M2GqytMtoLqBd91BbSzsaLuH2r+koPz3Pbkc3Eas6kISocP9GXPTzVjuIAwZNB29j+/U vQz8PVyhSIhEFXh8WRixQM8fkL7KMa0hi9WlDks+BHwvzxlo6H+eoPC71EySg0ww2qWx BE0w== X-Gm-Message-State: ALoCoQlpxUF0zhyd9Mk9+SFJu2iH/8VYIXkRi/qSTQt5CrODn9z5R9ug+ik67izvSsjdyAnUcSti X-Received: by 10.70.32.66 with SMTP id g2mr41514336pdi.82.1435652831736; Tue, 30 Jun 2015 01:27:11 -0700 (PDT) Received: from localhost.localdomain (napt.igel.co.jp. [219.106.231.132]) by mx.google.com with ESMTPSA id k3sm44738872pde.18.2015.06.30.01.27.09 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 30 Jun 2015 01:27:11 -0700 (PDT) From: Tetsuya Mukawa To: dev@dpdk.org Date: Tue, 30 Jun 2015 17:26:51 +0900 Message-Id: <1435652811-3487-2-git-send-email-mukawa@igel.co.jp> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1435652811-3487-1-git-send-email-mukawa@igel.co.jp> References: <1435546610-4533-9-git-send-email-mukawa@igel.co.jp> <1435652811-3487-1-git-send-email-mukawa@igel.co.jp> Subject: [dpdk-dev] [PATCH v4] eal: Enable Port Hotplug as default in Linux and BSD 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, 30 Jun 2015 08:27:12 -0000 From: "Tetsuya.Mukawa" This patch removes CONFIG_RTE_LIBRTE_EAL_HOTPLUG option, and enables it as default in both Linux and BSD. Also, to support port hotplug, rte_eal_pci_scan() and below missing symbols should be exported to ethdev library. - rte_eal_parse_devargs_str() - rte_eal_pci_close_one() - rte_eal_pci_probe_one() - rte_eal_pci_scan() - rte_eal_vdev_init() - rte_eal_vdev_uninit() Signed-off-by: Tetsuya Mukawa --- config/common_bsdapp | 6 ------ config/common_linuxapp | 5 ----- lib/librte_eal/bsdapp/eal/eal_pci.c | 6 +++--- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 6 ++++++ lib/librte_eal/common/eal_common_dev.c | 2 -- lib/librte_eal/common/eal_common_pci.c | 6 ------ lib/librte_eal/common/eal_common_pci_uio.c | 2 -- lib/librte_eal/common/eal_private.h | 2 -- lib/librte_eal/common/include/rte_pci.h | 2 -- lib/librte_ether/rte_ethdev.c | 21 --------------------- 10 files changed, 9 insertions(+), 49 deletions(-) diff --git a/config/common_bsdapp b/config/common_bsdapp index 464250b..c6e6e9c 100644 --- a/config/common_bsdapp +++ b/config/common_bsdapp @@ -121,12 +121,6 @@ CONFIG_RTE_LIBRTE_EAL_BSDAPP=y CONFIG_RTE_LIBRTE_EAL_LINUXAPP=n # -# Compile Environment Abstraction Layer to support hotplug -# So far, Hotplug functions only support linux -# -CONFIG_RTE_LIBRTE_EAL_HOTPLUG=n - -# # Compile Environment Abstraction Layer to support Vmware TSC map # CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y diff --git a/config/common_linuxapp b/config/common_linuxapp index aae22f4..c33a6fe 100644 --- a/config/common_linuxapp +++ b/config/common_linuxapp @@ -119,11 +119,6 @@ CONFIG_RTE_PCI_MAX_READ_REQUEST_SIZE=0 CONFIG_RTE_LIBRTE_EAL_LINUXAPP=y # -# Compile Environment Abstraction Layer to support hotplug -# -CONFIG_RTE_LIBRTE_EAL_HOTPLUG=y - -# # Compile Environment Abstraction Layer to support Vmware TSC map # CONFIG_RTE_LIBRTE_EAL_VMWARE_TSC_MAP_SUPPORT=y diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c b/lib/librte_eal/bsdapp/eal/eal_pci.c index 508cfa7..0724c45 100644 --- a/lib/librte_eal/bsdapp/eal/eal_pci.c +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c @@ -309,8 +309,8 @@ skipdev: * Scan the content of the PCI bus, and add the devices in the devices * list. Call pci_scan_one() for each pci entry found. */ -static int -pci_scan(void) +int +rte_eal_pci_scan(void) { int fd; unsigned dev_count = 0; @@ -366,7 +366,7 @@ rte_eal_pci_init(void) if (internal_config.no_pci) return 0; - if (pci_scan() < 0) { + if (rte_eal_pci_scan() < 0) { RTE_LOG(ERR, EAL, "%s(): Cannot scan PCI bus\n", __func__); return -1; } diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index 67b6a6c..7e850a9 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -37,14 +37,20 @@ DPDK_2.0 { rte_eal_lcore_role; rte_eal_mp_remote_launch; rte_eal_mp_wait_lcore; + rte_eal_parse_devargs_str; + rte_eal_pci_close_one; rte_eal_pci_dump; rte_eal_pci_probe; + rte_eal_pci_probe_one; rte_eal_pci_register; + rte_eal_pci_scan; rte_eal_pci_unregister; rte_eal_process_type; rte_eal_remote_launch; rte_eal_tailq_lookup; rte_eal_tailq_register; + rte_eal_vdev_init; + rte_eal_vdev_uninit; rte_eal_wait_lcore; rte_exit; rte_get_hpet_cycles; diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c index 92a5a94..4089d66 100644 --- a/lib/librte_eal/common/eal_common_dev.c +++ b/lib/librte_eal/common/eal_common_dev.c @@ -125,7 +125,6 @@ rte_eal_dev_init(void) return 0; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG int rte_eal_vdev_uninit(const char *name) { @@ -151,4 +150,3 @@ rte_eal_vdev_uninit(const char *name) RTE_LOG(ERR, EAL, "no driver found for %s\n", name); return -EINVAL; } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 8ef8057..3805aed 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -167,7 +167,6 @@ pci_map_device(struct rte_pci_device *dev) return ret; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG /* Unmap pci device */ static void pci_unmap_device(struct rte_pci_device *dev) @@ -192,7 +191,6 @@ pci_unmap_device(struct rte_pci_device *dev) break; } } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /* * If vendor/device ID match, call the devinit() function of the @@ -265,7 +263,6 @@ rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct rte_pci_device *d return 1; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG /* * If vendor/device ID match, call the devuninit() function of the * driver. @@ -321,7 +318,6 @@ rte_eal_pci_close_one_driver(struct rte_pci_driver *dr, /* return positive value if driver is not found */ return 1; } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /* * If vendor/device ID match, call the devinit() function of all @@ -350,7 +346,6 @@ pci_probe_all_drivers(struct rte_pci_device *dev) return 1; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG /* * If vendor/device ID match, call the devuninit() function of all * registered driver for the given device. Return -1 if initialization @@ -441,7 +436,6 @@ err_return: dev->addr.devid, dev->addr.function); return -1; } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /* * Scan the content of the PCI bus, and call the devinit() function for diff --git a/lib/librte_eal/common/eal_common_pci_uio.c b/lib/librte_eal/common/eal_common_pci_uio.c index bf29484..bb38498 100644 --- a/lib/librte_eal/common/eal_common_pci_uio.c +++ b/lib/librte_eal/common/eal_common_pci_uio.c @@ -194,7 +194,6 @@ free_uio_res: return -1; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG static void pci_uio_unmap(struct mapped_pci_resource *uio_res) { @@ -267,4 +266,3 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) dev->intr_handle.fd = -1; dev->intr_handle.type = RTE_INTR_HANDLE_UNKNOWN; } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index 216c098..6c9ac1a 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -174,14 +174,12 @@ int pci_unbind_kernel_driver(struct rte_pci_device *dev); */ int pci_uio_map_resource(struct rte_pci_device *dev); -#ifdef RTE_LIBRTE_EAL_HOTPLUG /** * Unmap this device * * This function is private to EAL. */ void pci_uio_unmap_resource(struct rte_pci_device *dev); -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /** * Allocate uio resource for PCI device diff --git a/lib/librte_eal/common/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 475d2dc..a8b6a10 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -376,7 +376,6 @@ void *pci_map_resource(void *requested_addr, int fd, off_t offset, */ void pci_unmap_resource(void *requested_addr, size_t size); -#ifdef RTE_LIBRTE_EAL_HOTPLUG /** * Probe the single PCI device. * @@ -406,7 +405,6 @@ int rte_eal_pci_probe_one(const struct rte_pci_addr *addr); * - Negative on error. */ int rte_eal_pci_close_one(const struct rte_pci_addr *addr); -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /** * Dump the content of the PCI bus. diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 1822258..43b9fcc 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -425,9 +425,6 @@ rte_eth_dev_count(void) return nb_ports; } -/* So far, DPDK hotplug function only supports linux */ -#ifdef RTE_LIBRTE_EAL_HOTPLUG - static enum rte_eth_dev_type rte_eth_dev_get_device_type(uint8_t port_id) { @@ -708,24 +705,6 @@ rte_eth_dev_detach(uint8_t port_id, char *name) } else return rte_eth_dev_detach_vdev(port_id, name); } -#else /* RTE_LIBRTE_EAL_HOTPLUG */ -int -rte_eth_dev_attach(const char *devargs __rte_unused, - uint8_t *port_id __rte_unused) -{ - RTE_LOG(ERR, EAL, "Hotplug support isn't enabled\n"); - return -1; -} - -/* detach the device, then store the name of the device */ -int -rte_eth_dev_detach(uint8_t port_id __rte_unused, - char *name __rte_unused) -{ - RTE_LOG(ERR, EAL, "Hotplug support isn't enabled\n"); - return -1; -} -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ static int rte_eth_dev_rx_queue_config(struct rte_eth_dev *dev, uint16_t nb_queues) -- 2.1.4