From: Tetsuya Mukawa <mukawa@igel.co.jp> To: dev@dpdk.org Cc: nakajima.yoshihiro@lab.ntt.co.jp, menrigh@brocade.com, masutani.hitoshi@lab.ntt.co.jp Subject: [dpdk-dev] [PATCH v2 26/28] eal/pci: Add rte_eal_dev_attach/detach() functions Date: Tue, 9 Dec 2014 12:42:49 +0900 Message-ID: <1418096571-27531-27-git-send-email-mukawa@igel.co.jp> (raw) In-Reply-To: <1418096571-27531-1-git-send-email-mukawa@igel.co.jp> This functions wraps attaching and detaching functions for physical and virtual device. When rte_eal_dev_attach() is called, the function tries to realize the device name as pci address. If this is done successfully, rte_eal_dev_attach() will call rte_eal_dev_attach_pdev(). If not, calls rte_eal_dev_attach_vdev(). When rte_eal_dev_detach() is called, the function gets the device type of this port to know whether the port is came from physical or virtual. And then rte_eal_dev_detach_pdev() or rte_eal_dev_detach_vdev() will be called. Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp> --- app/test/virtual_pmd.c | 2 +- lib/librte_eal/common/eal_common_dev.c | 34 ++++++++++++++++++++++++++++ lib/librte_eal/common/include/rte_dev.h | 25 ++++++++++++++++++++ lib/librte_ether/rte_ethdev.c | 14 ++++++++++-- lib/librte_ether/rte_ethdev.h | 24 +++++++++++++++++++- lib/librte_pmd_af_packet/rte_eth_af_packet.c | 2 +- lib/librte_pmd_bond/rte_eth_bond_api.c | 2 +- lib/librte_pmd_pcap/rte_eth_pcap.c | 2 +- lib/librte_pmd_ring/rte_eth_ring.c | 2 +- lib/librte_pmd_xenvirt/rte_eth_xenvirt.c | 2 +- 10 files changed, 100 insertions(+), 9 deletions(-) diff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c index ade6cb0..ff8f747 100644 --- a/app/test/virtual_pmd.c +++ b/app/test/virtual_pmd.c @@ -556,7 +556,7 @@ virtual_ethdev_create(const char *name, struct ether_addr *mac_addr, goto err; /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(name); + eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_PHYSICAL); if (eth_dev == NULL) goto err; diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c index 9ff03ed..c9d4894 100644 --- a/lib/librte_eal/common/eal_common_dev.c +++ b/lib/librte_eal/common/eal_common_dev.c @@ -322,4 +322,38 @@ err: RTE_LOG(ERR, EAL, "Drver, cannot detach the device\n"); return -1; } + +/* attach the new device, then store port_id of the device */ +int +rte_eal_dev_attach(const char *devargs, uint8_t *port_id) +{ + struct rte_pci_addr addr; + + if (eal_parse_pci_DomBDF(devargs, &addr) == 0) + return rte_eal_dev_attach_pdev(&addr, port_id); + else + return rte_eal_dev_attach_vdev(devargs, port_id); +} + +/* detach the device, then store the name of the device */ +int +rte_eal_dev_detach(uint8_t port_id, char *name) +{ + struct rte_pci_addr addr; + int ret; + + if (rte_eth_dev_get_device_type(port_id) == RTE_ETH_DEV_PHYSICAL) { + ret = rte_eth_dev_get_addr_by_port(port_id, &addr); + if (ret < 0) + return ret; + + ret = rte_eal_dev_detach_pdev(port_id, &addr); + if (ret == 0) + snprintf(name, RTE_ETH_NAME_MAX_LEN, "%04x.%02x.%02x.%d", + addr.domain, addr.bus, addr.devid, addr.function); + + return ret; + } else + return rte_eal_dev_detach_vdev(port_id, name); +} #endif /* RTE_LIBRTE_EAL_HOTPLUG & RTE_LIBRTE_EAL_LINUXAPP */ diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h index f0677cb..1f8f24a 100644 --- a/lib/librte_eal/common/include/rte_dev.h +++ b/lib/librte_eal/common/include/rte_dev.h @@ -151,6 +151,31 @@ int rte_eal_dev_detach_pdev(uint8_t port_id, struct rte_pci_addr *addr); */ int rte_eal_dev_detach_vdev(uint8_t port_id, char *vdevname); +/** + * Attach a new device. + * + * @param devargs + * A pointer to a strings array describing the new device + * to be attached. + * @param port_id + * A pointer to a port identifier actually attached. + * @return + * 0 on success and port_id is filled, negative on error + */ +int rte_eal_dev_attach(const char *devargs, uint8_t *port_id); + +/** + * Detach a device. + * + * @param port_id + * The port identifier of the device to detach. + * @param addr + * A pointer to a device name actually detached. + * @return + * 0 on success and devname is filled, negative on error + */ +int rte_eal_dev_detach(uint8_t port_id, char *devname); + #endif /* RTE_LIBRTE_EAL_HOTPLUG & RTE_LIBRTE_EAL_LINUXAPP */ /** diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index 86200e0..cd5ef67 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -232,7 +232,7 @@ rte_eth_dev_allocate_new_port(void) } struct rte_eth_dev * -rte_eth_dev_allocate(const char *name) +rte_eth_dev_allocate(const char *name, enum rte_eth_dev_type type) { uint8_t port_id; struct rte_eth_dev *eth_dev; @@ -256,6 +256,7 @@ rte_eth_dev_allocate(const char *name) snprintf(eth_dev->data->name, sizeof(eth_dev->data->name), "%s", name); eth_dev->data->port_id = port_id; eth_dev->attached = DEV_CONNECTED; + eth_dev->dev_type = type; nb_ports++; return eth_dev; } @@ -273,6 +274,7 @@ rte_eth_dev_free(const char *name) } eth_dev->attached = 0; + eth_dev->dev_type = RTE_ETH_DEV_UNKNOWN; nb_ports--; return eth_dev; } @@ -293,7 +295,7 @@ rte_eth_dev_init(struct rte_pci_driver *pci_drv, snprintf(ethdev_name, RTE_ETH_NAME_MAX_LEN, "%d:%d.%d", pci_dev->addr.bus, pci_dev->addr.devid, pci_dev->addr.function); - eth_dev = rte_eth_dev_allocate(ethdev_name); + eth_dev = rte_eth_dev_allocate(ethdev_name, RTE_ETH_DEV_PHYSICAL); if (eth_dev == NULL) return -ENOMEM; @@ -416,6 +418,14 @@ rte_eth_dev_count(void) return (nb_ports); } +enum rte_eth_dev_type +rte_eth_dev_get_device_type(uint8_t port_id) +{ + if (rte_eth_dev_validate_port(port_id) == DEV_INVALID) + return -1; + return rte_eth_devices[port_id].dev_type; +} + void rte_eth_dev_save(struct rte_eth_dev *devs) { diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 47622a2..0d500eb 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -1548,6 +1548,16 @@ struct eth_dev_ops { }; /** + * The eth device type + */ +enum rte_eth_dev_type { + RTE_ETH_DEV_UNKNOWN, /**< unknown device type */ + RTE_ETH_DEV_PHYSICAL, /**< physical device type */ + RTE_ETH_DEV_VIRTUAL, /**< virtual device type */ + RTE_ETH_DEV_MAX /**< max value of this enum */ +}; + +/** * @internal * The generic data structure associated with each ethernet device. * @@ -1566,6 +1576,7 @@ struct rte_eth_dev { struct rte_pci_device *pci_dev; /**< PCI info. supplied by probing */ struct rte_eth_dev_cb_list callbacks; /**< User application callbacks */ uint8_t attached; /**< Flag indicating the port is attached */ + enum rte_eth_dev_type dev_type; /**< Flag indicating the device type */ }; struct rte_eth_dev_sriov { @@ -1643,6 +1654,15 @@ extern uint8_t rte_eth_dev_count(void); /** * Function for internal use by port hotplug functions. + * Get the device type to know whether the device is physical or virtual. + * + * @return + * - Device type. + */ +extern enum rte_eth_dev_type rte_eth_dev_get_device_type(uint8_t port_id); + +/** + * Function for internal use by port hotplug functions. * Copies current ethdev structures to the specified pointer. * * @param devs The pointer to the ethdev structures @@ -1728,10 +1748,12 @@ extern struct rte_eth_dev *rte_eth_dev_allocated(const char *name); * to that slot for the driver to use. * * @param name Unique identifier name for each Ethernet device + * @param type Device type of this Ethernet device * @return * - Slot in the rte_dev_devices array for a new device; */ -struct rte_eth_dev *rte_eth_dev_allocate(const char *name); +struct rte_eth_dev *rte_eth_dev_allocate(const char *name, + enum rte_eth_dev_type type); /** * Function for internal use by dummy drivers primarily, e.g. ring-based diff --git a/lib/librte_pmd_af_packet/rte_eth_af_packet.c b/lib/librte_pmd_af_packet/rte_eth_af_packet.c index d0fb3eb..1237903 100644 --- a/lib/librte_pmd_af_packet/rte_eth_af_packet.c +++ b/lib/librte_pmd_af_packet/rte_eth_af_packet.c @@ -642,7 +642,7 @@ rte_pmd_init_internals(const char *name, } /* reserve an ethdev entry */ - *eth_dev = rte_eth_dev_allocate(name); + *eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL); if (*eth_dev == NULL) goto error; diff --git a/lib/librte_pmd_bond/rte_eth_bond_api.c b/lib/librte_pmd_bond/rte_eth_bond_api.c index ef5ddf4..a6986e3 100644 --- a/lib/librte_pmd_bond/rte_eth_bond_api.c +++ b/lib/librte_pmd_bond/rte_eth_bond_api.c @@ -231,7 +231,7 @@ rte_eth_bond_create(const char *name, uint8_t mode, uint8_t socket_id) } /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(name); + eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL); if (eth_dev == NULL) { RTE_BOND_LOG(ERR, "Unable to allocate rte_eth_dev"); goto err; diff --git a/lib/librte_pmd_pcap/rte_eth_pcap.c b/lib/librte_pmd_pcap/rte_eth_pcap.c index f12d1e7..0f34f73 100644 --- a/lib/librte_pmd_pcap/rte_eth_pcap.c +++ b/lib/librte_pmd_pcap/rte_eth_pcap.c @@ -710,7 +710,7 @@ rte_pmd_init_internals(const char *name, const unsigned nb_rx_queues, goto error; /* reserve an ethdev entry */ - *eth_dev = rte_eth_dev_allocate(name); + *eth_dev = rte_eth_dev_allocate(name, VIRTUAL); if (*eth_dev == NULL) goto error; diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c index 4f1b6ed..d901053 100644 --- a/lib/librte_pmd_ring/rte_eth_ring.c +++ b/lib/librte_pmd_ring/rte_eth_ring.c @@ -256,7 +256,7 @@ rte_eth_from_rings(const char *name, struct rte_ring *const rx_queues[], goto error; /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(name); + eth_dev = rte_eth_dev_allocate(name, RTE_ETH_DEV_VIRTUAL); if (eth_dev == NULL) goto error; diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c index 6555ec5..4f0eda5 100644 --- a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c +++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c @@ -647,7 +647,7 @@ eth_dev_xenvirt_create(const char *name, const char *params, goto err; /* reserve an ethdev entry */ - eth_dev = rte_eth_dev_allocate(name); + eth_dev = rte_eth_dev_allocate(name, VIRTUAL); if (eth_dev == NULL) goto err; -- 1.9.1
next prev parent reply other threads:[~2014-12-09 3:44 UTC|newest] Thread overview: 176+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-10-29 8:49 [dpdk-dev] [RFC PATCH 00/25] Port Hotplug Framework Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 01/25] eal/pci: Add a new flag indicating a driver can detach devices at runtime Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 02/25] ethdev: Remove assumption that port will not be detached Tetsuya Mukawa 2014-10-29 15:14 ` Bruce Richardson 2014-10-30 7:24 ` Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 03/25] eal/pci: Replace pci address comparison code by eal_compare_pci_addr Tetsuya Mukawa 2014-10-29 16:28 ` Bruce Richardson 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 04/25] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 05/25] eal, ethdev: Add function pointer for closing a device Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 06/25] ethdev: Add rte_eth_dev_shutdown for closing PCI devices Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 07/25] ethdev: Add functions to know which port is attached or detached Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 08/25] ethdev: Add rte_eth_dev_get_addr_by_port Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 09/25] ethdev: Add rte_eth_dev_get_port_by_addr Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 10/25] ethdev: Add rte_eth_dev_get_name_by_port Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 11/25] ethdev: Add rte_eth_dev_check_detachable Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 12/25] ethdev: Change scope of rte_eth_dev_allocated to global Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 13/25] eal/pci: Prevent double registration for devargs_list Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 14/25] eal/pci: Add rte_eal_devargs_remove Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 15/25] eal/pci: Add probe and close function for virtual drivers Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 16/25] eal/pci: Add port hotplug functions for virtual devices Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 17/25] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 18/25] eal/pci: Prevent double registrations for pci_device_list Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 19/25] eal/pci: Change scope of rte_eal_pci_scan to global Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 20/25] eal/pci: Add rte_eal_pci_close_one_driver Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 21/25] eal/pci: Fix pci_probe_all_drivers to share code with closing function Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 22/25] eal/pci: Add pci_close_all_drivers Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 23/25] eal/pci: Add rte_eal_pci_probe_one and rte_eal_pci_close_one Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 24/25] eal/pci: Add port hotplug functions for physical devices Tetsuya Mukawa 2014-10-29 8:49 ` [dpdk-dev] [RFC PATCH 25/25] eal: Enable port hotplug framework in Linux Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 00/25] Port Hotplug Framework Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 01/28] eal/pci: Add a new flag indicating a driver can detach devices at runtime Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 02/28] ethdev: Remove assumption that port will not be detached Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 03/28] eal/pci: Replace pci address comparison code by eal_compare_pci_addr Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 04/28] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 05/28] eal, ethdev: Add function pointer for closing a device Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 06/28] ethdev: Add rte_eth_dev_shutdown for closing PCI devices Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 07/28] ethdev: Add functions to know which port is attached or detached Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 08/28] ethdev: Add rte_eth_dev_get_addr_by_port Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 09/28] ethdev: Add rte_eth_dev_get_port_by_addr Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 10/28] ethdev: Add rte_eth_dev_get_name_by_port Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 11/28] ethdev: Add rte_eth_dev_check_detachable Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 12/28] ethdev: Change scope of rte_eth_dev_allocated to global Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 13/28] eal/pci: Prevent double registration for devargs_list Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 14/28] eal/pci: Add rte_eal_devargs_remove Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 15/28] eal/pci: Add probe and close function for virtual drivers Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 16/28] eal/pci: Add port hotplug functions for virtual devices Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 17/28] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 18/28] eal/pci: Prevent double registrations for pci_device_list Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 19/28] eal/pci: Change scope of rte_eal_pci_scan to global Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 20/28] eal/pci: Add rte_eal_pci_close_one_driver Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 21/28] eal/pci: Fix pci_probe_all_drivers to share code with closing function Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 22/28] eal/pci: Add pci_close_all_drivers Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 23/28] eal/pci: Add rte_eal_pci_probe_one and rte_eal_pci_close_one Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 24/28] eal/pci: Add port hotplug functions for physical devices Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 25/28] eal: Enable port hotplug framework in Linux Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 26/28] librte_pmd_pcap: Add support for port hotplug Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 27/28] testpmd: Add support for the port hotplug framework Tetsuya Mukawa 2014-11-04 3:45 ` [dpdk-dev] [RFC PATCH v2 28/28] librte_pmd_e1000: Add workaround to test " Tetsuya Mukawa 2014-11-18 8:55 ` [dpdk-dev] [RFC PATCH v2 00/25] Port Hotplug Framework Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH " Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 01/25] eal/pci: Add a new flag indicating a driver can detach devices at runtime Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 02/25] ethdev: Remove assumption that port will not be detached Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 03/25] eal/pci: Replace pci address comparison code by eal_compare_pci_addr Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 04/25] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 05/25] eal, ethdev: Add function pointer for closing a device Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 06/25] ethdev: Add rte_eth_dev_shutdown for closing PCI devices Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 07/25] ethdev: Add functions to know which port is attached or detached Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 08/25] ethdev: Add rte_eth_dev_get_addr_by_port Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 09/25] ethdev: Add rte_eth_dev_get_port_by_addr Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 10/25] ethdev: Add rte_eth_dev_get_name_by_port Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 11/25] ethdev: Add rte_eth_dev_check_detachable Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 12/25] ethdev: Change scope of rte_eth_dev_allocated to global Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 13/25] eal/pci: Prevent double registration for devargs_list Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 14/25] eal/pci: Add rte_eal_devargs_remove Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 15/25] eal/pci: Add probe and close function for virtual drivers Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 16/25] eal/pci: Add port hotplug functions for virtual devices Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 17/25] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 18/25] eal/pci: Prevent double registrations for pci_device_list Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 19/25] eal/pci: Change scope of rte_eal_pci_scan to global Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 20/25] eal/pci: Add rte_eal_pci_close_one_driver Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 21/25] eal/pci: Fix pci_probe_all_drivers to share code with closing function Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 22/25] eal/pci: Add pci_close_all_drivers Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 23/25] eal/pci: Add rte_eal_pci_probe_one and rte_eal_pci_close_one Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 24/25] eal/pci: Add port hotplug functions for physical devices Tetsuya Mukawa 2014-11-20 9:06 ` [dpdk-dev] [PATCH 25/25] eal: Enable port hotplug framework in Linux Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 00/28] Port Hotplug Framework Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 01/28] eal/pci: Add a new flag indicating a driver can detach devices at runtime Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 02/28] ethdev: Remove assumption that port will not be detached Tetsuya Mukawa 2014-12-09 5:07 ` Zhang, Helin 2014-12-09 6:06 ` Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 03/28] eal/pci: Replace pci address comparison code by eal_compare_pci_addr Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 04/28] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 05/28] eal, ethdev: Add function pointer for closing a device Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 06/28] ethdev: Add rte_eth_dev_shutdown for closing PCI devices Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 07/28] ethdev: Add functions to know which port is attached or detached Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 08/28] ethdev: Add rte_eth_dev_get_addr_by_port Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 09/28] ethdev: Add rte_eth_dev_get_port_by_addr Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 10/28] ethdev: Add rte_eth_dev_get_name_by_port Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 11/28] ethdev: Add rte_eth_dev_check_detachable Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 12/28] ethdev: Change scope of rte_eth_dev_allocated to global Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 13/28] eal/pci: Prevent double registration for devargs_list Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 14/28] eal/pci: Add rte_eal_devargs_remove Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 15/28] eal/pci: Add probe and close function for virtual drivers Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 16/28] eal/pci: Add port hotplug functions for virtual devices Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 17/28] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 18/28] eal/pci: Prevent double registrations for pci_device_list Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 19/28] eal/pci: Change scope of rte_eal_pci_scan to global Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 20/28] eal/pci: Add rte_eal_pci_close_one_driver Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 21/28] eal/pci: Fix pci_probe_all_drivers to share code with closing function Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 22/28] eal/pci: Add pci_close_all_drivers Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 23/28] eal/pci: Add rte_eal_pci_probe_one and rte_eal_pci_close_one Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 24/28] eal/pci: Add port hotplug functions for physical devices Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 25/28] eal/pci: Remove pci_probe/close_all_drivers() Tetsuya Mukawa 2014-12-09 3:42 ` Tetsuya Mukawa [this message] 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 27/28] eal/pci: Remove rte_eal_dev_attach/detach_pdev() and rte_eal_dev_attach/detach_vdev() Tetsuya Mukawa 2014-12-09 3:42 ` [dpdk-dev] [PATCH v2 28/28] eal: Enable port hotplug framework in Linux Tetsuya Mukawa 2014-12-09 3:44 ` [dpdk-dev] [PATCH v2] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa 2014-12-09 3:45 ` [dpdk-dev] [PATCH v2] testpmd: " Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 00/28] Port Hotplug Framework Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 01/28] eal/pci: Add a new flag indicating a driver can detach devices at runtime Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 02/28] ethdev: Remove assumption that port will not be detached Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 03/28] eal/pci: Replace pci address comparison code by eal_compare_pci_addr Tetsuya Mukawa 2014-12-09 14:22 ` Qiu, Michael 2014-12-11 3:11 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 04/28] ethdev: Add rte_eth_dev_free to free specified device Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 05/28] eal, ethdev: Add function pointer for closing a device Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 06/28] ethdev: Add rte_eth_dev_shutdown for closing PCI devices Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 07/28] ethdev: Add functions to know which port is attached or detached Tetsuya Mukawa 2014-12-09 14:39 ` Qiu, Michael 2014-12-11 3:12 ` Tetsuya Mukawa 2014-12-11 3:35 ` Qiu, Michael 2014-12-11 4:57 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 08/28] ethdev: Add rte_eth_dev_get_addr_by_port Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 09/28] ethdev: Add rte_eth_dev_get_port_by_addr Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 10/28] ethdev: Add rte_eth_dev_get_name_by_port Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 11/28] ethdev: Add rte_eth_dev_check_detachable Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 12/28] ethdev: Change scope of rte_eth_dev_allocated to global Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 13/28] eal/pci: Prevent double registration for devargs_list Tetsuya Mukawa 2014-12-09 14:55 ` Qiu, Michael 2014-12-11 4:57 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 14/28] eal/pci: Add rte_eal_devargs_remove Tetsuya Mukawa 2014-12-09 15:36 ` Qiu, Michael 2014-12-11 1:40 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 15/28] eal/pci: Add probe and close function for virtual drivers Tetsuya Mukawa 2014-12-09 15:51 ` Qiu, Michael 2014-12-11 3:14 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 16/28] eal/pci: Add port hotplug functions for virtual devices Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 17/28] eal/linux/pci: Add functions for unmapping igb_uio resources Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 18/28] eal/pci: Prevent double registrations for pci_device_list Tetsuya Mukawa 2014-12-11 3:24 ` Qiu, Michael 2014-12-11 5:33 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 19/28] eal/pci: Change scope of rte_eal_pci_scan to global Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 20/28] eal/pci: Add rte_eal_pci_close_one_driver Tetsuya Mukawa 2014-12-11 3:41 ` Qiu, Michael 2014-12-11 9:55 ` Bruce Richardson 2014-12-11 15:45 ` Qiu, Michael 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 21/28] eal/pci: Fix pci_probe_all_drivers to share code with closing function Tetsuya Mukawa 2014-12-11 3:50 ` Qiu, Michael 2014-12-11 4:46 ` Qiu, Michael 2014-12-11 4:59 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 22/28] eal/pci: Add pci_close_all_drivers Tetsuya Mukawa 2014-12-11 5:23 ` Qiu, Michael 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 23/28] eal/pci: Add rte_eal_pci_probe_one and rte_eal_pci_close_one Tetsuya Mukawa 2014-12-11 5:54 ` Qiu, Michael 2014-12-11 7:20 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 24/28] eal/pci: Add port hotplug functions for physical devices Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 25/28] eal/pci: Remove pci_probe/close_all_drivers() Tetsuya Mukawa 2014-12-11 6:02 ` Qiu, Michael 2014-12-11 7:20 ` Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 26/28] eal/pci: Add rte_eal_dev_attach/detach() functions Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 27/28] eal/pci: Remove rte_eal_dev_attach/detach_pdev() and rte_eal_dev_attach/detach_vdev() Tetsuya Mukawa 2014-12-09 6:30 ` [dpdk-dev] [PATCH v3 28/28] eal: Enable port hotplug framework in Linux Tetsuya Mukawa 2014-12-09 6:32 ` [dpdk-dev] [PATCH v3] librte_pmd_pcap: Add port hotplug support Tetsuya Mukawa 2014-12-09 6:33 ` [dpdk-dev] [PATCH v3] testpmd: " Tetsuya Mukawa 2014-11-20 9:22 ` [dpdk-dev] [PATCH] librte_pmd_pcap: " Tetsuya Mukawa 2014-11-20 9:22 ` [dpdk-dev] [PATCH] testpmd: " Tetsuya Mukawa
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1418096571-27531-27-git-send-email-mukawa@igel.co.jp \ --to=mukawa@igel.co.jp \ --cc=dev@dpdk.org \ --cc=masutani.hitoshi@lab.ntt.co.jp \ --cc=menrigh@brocade.com \ --cc=nakajima.yoshihiro@lab.ntt.co.jp \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
DPDK patches and discussions This inbox may be cloned and mirrored by anyone: git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \ dev@dpdk.org public-inbox-index dev Example config snippet for mirrors. Newsgroup available over NNTP: nntp://inbox.dpdk.org/inbox.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git