From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f51.google.com (mail-pa0-f51.google.com [209.85.220.51]) by dpdk.org (Postfix) with ESMTP id A23B5C3A0 for ; Tue, 19 May 2015 08:22:20 +0200 (CEST) Received: by pabts4 with SMTP id ts4so9695280pab.3 for ; Mon, 18 May 2015 23:22:20 -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=NJYRcUiov9wHEadXwHdWgpVgX40lAVrtOXDjDVtWKkA=; b=AljnFt2DV8rxeSWQ51yJgUB7Nru3o/dOagLxt5Ztr3uOXWQDoSY5U8LzNRBI3Unb3l cY1J4rhS0c5WOI2345dT1vkgEHCJnZz1uUsrFcpWoY95zr6Q/hmWGLqM/kwGjEiIWoEV JZD05gSGBGl/Hkq3O/tBK+5ruEZjbkqqxfzTXrtu+vCZq63JB81otXFYl3r/b7tikn+W XQceCs6gHAa++08uDxSWA0p5oeIKhZSCLTefXq7tHasnNec1u8UXtSsr1O0YkJe2P2Tz CuPsuf7qenyfimzOFTyD4N8dIwWKhnISB/IsFjvdkPVCenbUIxhpGswAvDZfHfLx9OWv eZ8g== X-Gm-Message-State: ALoCoQlEJBC7c8Sdj+vk9xE6V82O1vQyxXO3SILZxGtReuTkOErCh5n7y9+E8itRajObYelZZzCM X-Received: by 10.66.150.196 with SMTP id uk4mr51425313pab.54.1432016540064; Mon, 18 May 2015 23:22:20 -0700 (PDT) Received: from localhost.localdomain (napt.igel.co.jp. [219.106.231.132]) by mx.google.com with ESMTPSA id e5sm11888984pdc.94.2015.05.18.23.22.18 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 18 May 2015 23:22:19 -0700 (PDT) From: Tetsuya Mukawa To: dev@dpdk.org Date: Tue, 19 May 2015 15:21:53 +0900 Message-Id: <1432016513-8456-9-git-send-email-mukawa@igel.co.jp> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1432016513-8456-1-git-send-email-mukawa@igel.co.jp> References: <1432016513-8456-1-git-send-email-mukawa@igel.co.jp> Subject: [dpdk-dev] [PATCH 8/8] 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, 19 May 2015 06:22:21 -0000 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 | 8 -------- lib/librte_eal/common/eal_common_pci_uio.c | 2 -- lib/librte_eal/common/include/rte_pci.h | 2 -- lib/librte_ether/rte_ethdev.c | 21 --------------------- 9 files changed, 9 insertions(+), 49 deletions(-) diff --git a/config/common_bsdapp b/config/common_bsdapp index c2374c0..a53bd7b 100644 --- a/config/common_bsdapp +++ b/config/common_bsdapp @@ -116,12 +116,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 0078dc9..b670a34 100644 --- a/config/common_linuxapp +++ b/config/common_linuxapp @@ -114,11 +114,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 0103e2b..163e008 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 30ece44..c55112b 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -121,7 +121,6 @@ pci_map_resource(void *requested_addr, int fd, off_t offset, size_t size, return mapaddr; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG /* unmap a particular resource */ void pci_unmap_resource(void *requested_addr, size_t size) @@ -138,7 +137,6 @@ pci_unmap_resource(void *requested_addr, size_t size) RTE_LOG(DEBUG, EAL, " PCI memory unmapped at %p\n", requested_addr); } -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ /* Map pci device */ static int @@ -170,7 +168,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) @@ -195,7 +192,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 @@ -268,7 +264,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. @@ -324,7 +319,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 @@ -353,7 +347,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 @@ -444,7 +437,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 32d3f57..06470f0 100644 --- a/lib/librte_eal/common/eal_common_pci_uio.c +++ b/lib/librte_eal/common/eal_common_pci_uio.c @@ -159,7 +159,6 @@ free_uio_res: return -1; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG static void pci_uio_unmap(struct mapped_pci_resource *uio_res) { @@ -232,4 +231,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/include/rte_pci.h b/lib/librte_eal/common/include/rte_pci.h index 2ad3452..a999d3e 100644 --- a/lib/librte_eal/common/include/rte_pci.h +++ b/lib/librte_eal/common/include/rte_pci.h @@ -370,7 +370,6 @@ int rte_eal_pci_probe(void); void *pci_map_resource(void *requested_addr, int fd, off_t offset, size_t size, int additional_flags); -#ifdef RTE_LIBRTE_EAL_HOTPLUG /** * Map pci resouce. */ @@ -405,7 +404,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 3c38d09..31c738f 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