From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f53.google.com (mail-pa0-f53.google.com [209.85.220.53]) by dpdk.org (Postfix) with ESMTP id 844FDC8FE for ; Fri, 26 Jun 2015 10:22:13 +0200 (CEST) Received: by paceq1 with SMTP id eq1so64809273pac.3 for ; Fri, 26 Jun 2015 01:22:13 -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=U51R189TGnaEt43/Wegb1De7d//MKf0ELE6/4+hD2gM=; b=XYvQ9cpHl7KyiQLuSR5IZDnt5yIvWO1DSHN4Dqk7Cj6zt6KesSp7olmISpxwOkdm+k nMfoS+7mTM2FyKtpHvaIDyKBfRoox2vMbbKB47HqlecfTxcniQPCGQCb19AWi41xVrk0 yx4KjNPqw8HQVFdUoDS1EQ2NSwtHf6mGFkj1E8jx38mL9T7sxCc94A8HALfxw8jDHtLV fv+u0z1GSusfCr5uMaPT+pUavwregZPsyDEHW7OJP1pGT2CNAdr9ZBvaVu4VM0Jugdvh 8hqEOjBf9mRXSdmeZmxjlSXSxJdPa5TOK/YE8gI74k9xYC6qYnhIpKl3CS44eWzKmKBC qWCw== X-Gm-Message-State: ALoCoQmQVI6bIYwbU9ITXmiZzB6or4RDhySsShcTIaVb5VEtBJiMe5BK5/nGIKBGKUUpwqPjyf2j X-Received: by 10.68.178.229 with SMTP id db5mr908648pbc.17.1435306932465; Fri, 26 Jun 2015 01:22:12 -0700 (PDT) Received: from localhost.localdomain (napt.igel.co.jp. [219.106.231.132]) by mx.google.com with ESMTPSA id cd10sm32534140pac.7.2015.06.26.01.22.10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 Jun 2015 01:22:11 -0700 (PDT) From: Tetsuya Mukawa To: dev@dpdk.org Date: Fri, 26 Jun 2015 17:21:26 +0900 Message-Id: <1435306886-11790-9-git-send-email-mukawa@igel.co.jp> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1435306886-11790-1-git-send-email-mukawa@igel.co.jp> References: <1432016513-8456-5-git-send-email-mukawa@igel.co.jp> <1435306886-11790-1-git-send-email-mukawa@igel.co.jp> Subject: [dpdk-dev] [PATCH v2 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: Fri, 26 Jun 2015 08:22:14 -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/include/rte_pci.h | 2 -- lib/librte_ether/rte_ethdev.c | 21 --------------------- 9 files changed, 9 insertions(+), 47 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 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 c4b24bc..c55112b 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -168,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) @@ -193,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 @@ -266,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. @@ -322,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 @@ -351,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 @@ -442,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 fa36073..84e392a 100644 --- a/lib/librte_eal/common/eal_common_pci_uio.c +++ b/lib/librte_eal/common/eal_common_pci_uio.c @@ -162,7 +162,6 @@ free_uio_res: return -1; } -#ifdef RTE_LIBRTE_EAL_HOTPLUG static void pci_uio_unmap(struct mapped_pci_resource *uio_res) { @@ -235,4 +234,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 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