From: Jeff Guo <jia.guo@intel.com>
To: stephen@networkplumber.org, bruce.richardson@intel.com,
ferruh.yigit@intel.com, gaetan.rivet@6wind.com
Cc: konstantin.ananyev@intel.com, jblunck@infradead.org,
shreyansh.jain@nxp.com, jingjing.wu@intel.com, dev@dpdk.org,
jia.guo@intel.com, thomas@monjalon.net, helin.zhang@intel.com,
motih@mellanox.com
Subject: [dpdk-dev] [PATCH V9 4/5] pci_uio: add uevent hotplug failure handler in pci
Date: Wed, 10 Jan 2018 17:12:23 +0800 [thread overview]
Message-ID: <1515575544-2141-5-git-send-email-jia.guo@intel.com> (raw)
In-Reply-To: <1515575544-2141-1-git-send-email-jia.guo@intel.com>
when detect hot removal uevent of device, the device resource become invalid,
in order to avoid unexpected usage of this resource, remap the device resource
to be a fake memory, that would lead the application keep running well but not
encounter system core dump.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
---
v9->v8:
split the patch set into small and explicit patch
---
drivers/bus/pci/bsd/pci.c | 23 ++++++++++++++++++++
drivers/bus/pci/linux/pci.c | 34 ++++++++++++++++++++++++++++++
drivers/bus/pci/pci_common.c | 22 +++++++++++++++++++
drivers/bus/pci/pci_common_uio.c | 28 +++++++++++++++++++++++++
drivers/bus/pci/private.h | 12 +++++++++++
drivers/bus/pci/rte_bus_pci.h | 11 ++++++++++
drivers/bus/vdev/vdev.c | 9 +++++++-
lib/librte_eal/common/eal_common_bus.c | 1 +
lib/librte_eal/common/include/rte_bus.h | 17 +++++++++++++++
lib/librte_eal/linuxapp/eal/eal_dev.c | 35 ++++++++++++++++++++++++++++---
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 6 ++++++
lib/librte_pci/rte_pci.c | 20 ++++++++++++++++++
lib/librte_pci/rte_pci.h | 17 +++++++++++++++
13 files changed, 231 insertions(+), 4 deletions(-)
diff --git a/drivers/bus/pci/bsd/pci.c b/drivers/bus/pci/bsd/pci.c
index 655b34b..d7165b9 100644
--- a/drivers/bus/pci/bsd/pci.c
+++ b/drivers/bus/pci/bsd/pci.c
@@ -97,6 +97,29 @@ rte_pci_unmap_device(struct rte_pci_device *dev)
}
}
+/* re-map pci device */
+int
+rte_pci_remap_device(struct rte_pci_device *dev)
+{
+ int ret;
+
+ if (dev == NULL)
+ return -EINVAL;
+
+ switch (dev->kdrv) {
+ case RTE_KDRV_NIC_UIO:
+ ret = pci_uio_remap_resource(dev);
+ break;
+ default:
+ RTE_LOG(DEBUG, EAL,
+ " Not managed by a supported kernel driver, skipped\n");
+ ret = 1;
+ break;
+ }
+
+ return ret;
+}
+
void
pci_uio_free_resource(struct rte_pci_device *dev,
struct mapped_pci_resource *uio_res)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index 25f907e..7aa3079 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -116,6 +116,38 @@ rte_pci_unmap_device(struct rte_pci_device *dev)
}
}
+/* Map pci device */
+int
+rte_pci_remap_device(struct rte_pci_device *dev)
+{
+ int ret = -1;
+
+ if (dev == NULL)
+ return -EINVAL;
+
+ switch (dev->kdrv) {
+ case RTE_KDRV_VFIO:
+#ifdef VFIO_PRESENT
+ /* no thing to do */
+#endif
+ break;
+ case RTE_KDRV_IGB_UIO:
+ case RTE_KDRV_UIO_GENERIC:
+ if (rte_eal_using_phys_addrs()) {
+ /* map resources for devices that use uio */
+ ret = pci_uio_remap_resource(dev);
+ }
+ break;
+ default:
+ RTE_LOG(DEBUG, EAL,
+ " Not managed by a supported kernel driver, skipped\n");
+ ret = 1;
+ break;
+ }
+
+ return ret;
+}
+
void *
pci_find_max_end_va(void)
{
@@ -357,6 +389,8 @@ pci_scan_one(const char *dirname, const struct rte_pci_addr *addr)
rte_pci_add_device(dev);
}
+ dev->device.state = RTE_DEV_PARSED;
+ TAILQ_INIT(&(dev->device.uev_cbs));
return 0;
}
diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index c4415a0..3fbe9d7 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -282,6 +282,7 @@ pci_probe_all_drivers(struct rte_pci_device *dev)
if (rc > 0)
/* positive value means driver doesn't support it */
continue;
+ dev->device.state = RTE_DEV_PROBED;
return 0;
}
return 1;
@@ -481,6 +482,7 @@ rte_pci_insert_device(struct rte_pci_device *exist_pci_dev,
void
rte_pci_remove_device(struct rte_pci_device *pci_dev)
{
+ RTE_LOG(DEBUG, EAL, " rte_pci_remove_device for device list\n");
TAILQ_REMOVE(&rte_pci_bus.device_list, pci_dev, next);
}
@@ -522,6 +524,25 @@ pci_find_device_by_name(const struct rte_device *start,
}
static int
+pci_remap_device(struct rte_device *dev)
+{
+ struct rte_pci_device *pdev;
+ int ret;
+
+ if (dev == NULL)
+ return -EINVAL;
+
+ pdev = RTE_DEV_TO_PCI(dev);
+
+ /* remap resources for devices that use igb_uio */
+ ret = rte_pci_remap_device(pdev);
+ if (ret != 0)
+ RTE_LOG(ERR, EAL, "failed to remap device %s",
+ dev->name);
+ return ret;
+}
+
+static int
pci_plug(struct rte_device *dev)
{
return pci_probe_all_drivers(RTE_DEV_TO_PCI(dev));
@@ -552,6 +573,7 @@ struct rte_pci_bus rte_pci_bus = {
.unplug = pci_unplug,
.parse = pci_parse,
.get_iommu_class = rte_pci_get_iommu_class,
+ .remap_device = pci_remap_device,
},
.device_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.device_list),
.driver_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.driver_list),
diff --git a/drivers/bus/pci/pci_common_uio.c b/drivers/bus/pci/pci_common_uio.c
index dd84ec8..a4bc473 100644
--- a/drivers/bus/pci/pci_common_uio.c
+++ b/drivers/bus/pci/pci_common_uio.c
@@ -147,6 +147,34 @@ pci_uio_unmap(struct mapped_pci_resource *uio_res)
}
}
+/* remap the PCI resource of a PCI device in private virtual memory */
+int
+pci_uio_remap_resource(struct rte_pci_device *dev)
+{
+ int i;
+ uint64_t phaddr;
+ void *map_address;
+
+ /* Map all BARs */
+ for (i = 0; i != PCI_MAX_RESOURCE; i++) {
+ /* skip empty BAR */
+ phaddr = dev->mem_resource[i].phys_addr;
+ if (phaddr == 0)
+ continue;
+ map_address = pci_map_private_resource(
+ dev->mem_resource[i].addr, 0,
+ (size_t)dev->mem_resource[i].len);
+ if (map_address == MAP_FAILED)
+ goto error;
+ memset(map_address, 0xFF, (size_t)dev->mem_resource[i].len);
+ dev->mem_resource[i].addr = map_address;
+ }
+
+ return 0;
+error:
+ return -1;
+}
+
static struct mapped_pci_resource *
pci_uio_find_resource(struct rte_pci_device *dev)
{
diff --git a/drivers/bus/pci/private.h b/drivers/bus/pci/private.h
index 2283f09..10baa1a 100644
--- a/drivers/bus/pci/private.h
+++ b/drivers/bus/pci/private.h
@@ -202,6 +202,18 @@ void pci_uio_free_resource(struct rte_pci_device *dev,
struct mapped_pci_resource *uio_res);
/**
+ * remap the pci uio resource..
+ *
+ * @param dev
+ * Point to the struct rte pci device.
+ * @return
+ * - On success, zero.
+ * - On failure, a negative value.
+ */
+int
+pci_uio_remap_resource(struct rte_pci_device *dev);
+
+/**
* Map device memory to uio resource
*
* This function is private to EAL.
diff --git a/drivers/bus/pci/rte_bus_pci.h b/drivers/bus/pci/rte_bus_pci.h
index d4a2996..65337eb 100644
--- a/drivers/bus/pci/rte_bus_pci.h
+++ b/drivers/bus/pci/rte_bus_pci.h
@@ -52,6 +52,8 @@ extern "C" {
#include <sys/queue.h>
#include <stdint.h>
#include <inttypes.h>
+#include <unistd.h>
+#include <fcntl.h>
#include <rte_debug.h>
#include <rte_interrupts.h>
@@ -197,6 +199,15 @@ int rte_pci_map_device(struct rte_pci_device *dev);
void rte_pci_unmap_device(struct rte_pci_device *dev);
/**
+ * Remap this device
+ *
+ * @param dev
+ * A pointer to a rte_pci_device structure describing the device
+ * to use
+ */
+int rte_pci_remap_device(struct rte_pci_device *dev);
+
+/**
* Dump the content of the PCI bus.
*
* @param f
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index cac2aa0..c9cd369 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -323,7 +323,6 @@ vdev_find_device(const struct rte_device *start, rte_dev_cmp_t cmp,
return NULL;
}
-
static struct rte_device *
vdev_find_device_by_name(const struct rte_device *start,
rte_dev_cmp_name_t cmp_name,
@@ -343,6 +342,13 @@ vdev_find_device_by_name(const struct rte_device *start,
}
static int
+vdev_remap_device(struct rte_device *dev)
+{
+ RTE_SET_USED(dev);
+ return 0;
+}
+
+static int
vdev_plug(struct rte_device *dev)
{
return vdev_probe_all_drivers(RTE_DEV_TO_VDEV(dev));
@@ -362,6 +368,7 @@ static struct rte_bus rte_vdev_bus = {
.plug = vdev_plug,
.unplug = vdev_unplug,
.parse = vdev_parse,
+ .remap_device = vdev_remap_device,
};
RTE_REGISTER_BUS(vdev, rte_vdev_bus);
diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c
index efd5539..bdb0e54 100644
--- a/lib/librte_eal/common/eal_common_bus.c
+++ b/lib/librte_eal/common/eal_common_bus.c
@@ -54,6 +54,7 @@ rte_bus_register(struct rte_bus *bus)
RTE_VERIFY(bus->find_device_by_name);
/* Buses supporting driver plug also require unplug. */
RTE_VERIFY(!bus->plug || bus->unplug);
+ RTE_VERIFY(bus->remap_device);
TAILQ_INSERT_TAIL(&rte_bus_list, bus, next);
RTE_LOG(DEBUG, EAL, "Registered [%s] bus.\n", bus->name);
diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h
index 6dcfdb3..78990bc 100644
--- a/lib/librte_eal/common/include/rte_bus.h
+++ b/lib/librte_eal/common/include/rte_bus.h
@@ -196,6 +196,22 @@ typedef int (*rte_bus_unplug_t)(struct rte_device *dev);
typedef int (*rte_bus_parse_t)(const char *name, void *addr);
/**
+ * Implementation specific remap function which is responsible for
+ * remmaping devices on that bus from original share memory resource
+ * to a private memory resource for the sake of device has been removal,
+ * when detect the device removal event invoke from the kernel side,
+ * prior to call this function before any operation for device hw.
+ *
+ * @param dev
+ * Device pointer that was returned by a previous call to find_device.
+ *
+ * @return
+ * 0 on success.
+ * !0 on error.
+ */
+typedef int (*rte_bus_remap_device_t)(struct rte_device *dev);
+
+/**
* Bus scan policies
*/
enum rte_bus_scan_mode {
@@ -239,6 +255,7 @@ struct rte_bus {
rte_bus_plug_t plug; /**< Probe single device for drivers */
rte_bus_unplug_t unplug; /**< Remove single device from driver */
rte_bus_parse_t parse; /**< Parse a device name */
+ rte_bus_remap_device_t remap_device; /**< remap a device */
struct rte_bus_conf conf; /**< Bus configuration */
rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */
};
diff --git a/lib/librte_eal/linuxapp/eal/eal_dev.c b/lib/librte_eal/linuxapp/eal/eal_dev.c
index 9d347f2..d68ef9b 100644
--- a/lib/librte_eal/linuxapp/eal/eal_dev.c
+++ b/lib/librte_eal/linuxapp/eal/eal_dev.c
@@ -32,6 +32,12 @@ bool service_no_init = true;
#define DEV_EV_MNT_SERVICE_NAME "device_event_monitor_service"
+static void sig_handler(int signum)
+{
+ if (signum == SIGINT || signum == SIGTERM)
+ rte_dev_monitor_stop();
+}
+
static int
dev_monitor_fd_new(void)
{
@@ -168,6 +174,7 @@ dev_uev_process(struct epoll_event *events, int nfds)
struct rte_bus *bus;
struct rte_device *dev;
struct rte_eal_uevent uevent;
+ int ret;
int i;
for (i = 0; i < nfds; i++) {
@@ -187,9 +194,17 @@ dev_uev_process(struct epoll_event *events, int nfds)
if ((!dev) || dev->state == RTE_DEV_UNDEFINED)
return 0;
- return(_rte_dev_callback_process(dev,
- RTE_DEV_EVENT_REMOVE,
- NULL));
+ dev->state = RTE_DEV_FAULT;
+
+ /**
+ * remap the resource to be fake
+ * before user's removal processing
+ */
+ ret = bus->remap_device(dev);
+ if (!ret)
+ return(_rte_dev_callback_process(dev,
+ RTE_DEV_EVENT_REMOVE,
+ NULL));
} else if (uevent.type == RTE_DEV_EVENT_ADD) {
if (dev == NULL) {
return(_rte_dev_callback_process(NULL,
@@ -215,12 +230,26 @@ dev_uev_process(struct epoll_event *events, int nfds)
*/
static int32_t dev_uev_monitoring(__rte_unused void *arg)
{
+ struct sigaction act;
+ sigset_t mask;
int netlink_fd = -1;
struct epoll_event ep_kernel;
int fd_ep = -1;
service_exit = false;
+ /* set signal handlers */
+ memset(&act, 0x00, sizeof(struct sigaction));
+ act.sa_handler = sig_handler;
+ sigemptyset(&act.sa_mask);
+ act.sa_flags = SA_RESTART;
+ sigaction(SIGINT, &act, NULL);
+ sigaction(SIGTERM, &act, NULL);
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGINT);
+ sigaddset(&mask, SIGTERM);
+ sigprocmask(SIG_UNBLOCK, &mask, NULL);
+
fd_ep = epoll_create1(EPOLL_CLOEXEC);
if (fd_ep < 0) {
RTE_LOG(ERR, EAL, "error creating epoll fd: %m\n");
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index a3a98c1..d0e07b4 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -354,6 +354,12 @@ igbuio_pci_release(struct uio_info *info, struct inode *inode)
struct rte_uio_pci_dev *udev = info->priv;
struct pci_dev *dev = udev->pdev;
+ /* check if device have been remove before release */
+ if ((&dev->dev.kobj)->state_remove_uevent_sent == 1) {
+ pr_info("The device have been removed\n");
+ return -1;
+ }
+
/* disable interrupts */
igbuio_pci_disable_interrupts(udev);
diff --git a/lib/librte_pci/rte_pci.c b/lib/librte_pci/rte_pci.c
index 0160fc1..feb5fd7 100644
--- a/lib/librte_pci/rte_pci.c
+++ b/lib/librte_pci/rte_pci.c
@@ -172,6 +172,26 @@ rte_pci_addr_parse(const char *str, struct rte_pci_addr *addr)
return -1;
}
+/* map a private resource from an address*/
+void *
+pci_map_private_resource(void *requested_addr, off_t offset, size_t size)
+{
+ void *mapaddr;
+
+ mapaddr = mmap(requested_addr, size,
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED, -1, 0);
+ if (mapaddr == MAP_FAILED) {
+ RTE_LOG(ERR, EAL, "%s(): cannot mmap(%p, 0x%lx, 0x%lx): "
+ "%s (%p)\n",
+ __func__, requested_addr,
+ (unsigned long)size, (unsigned long)offset,
+ strerror(errno), mapaddr);
+ } else
+ RTE_LOG(DEBUG, EAL, " PCI memory mapped at %p\n", mapaddr);
+
+ return mapaddr;
+}
/* map a particular resource from a file */
void *
diff --git a/lib/librte_pci/rte_pci.h b/lib/librte_pci/rte_pci.h
index 4f2cd18..f6091a6 100644
--- a/lib/librte_pci/rte_pci.h
+++ b/lib/librte_pci/rte_pci.h
@@ -227,6 +227,23 @@ int rte_pci_addr_cmp(const struct rte_pci_addr *addr,
int rte_pci_addr_parse(const char *str, struct rte_pci_addr *addr);
/**
+ * @internal
+ * Map to a particular private resource.
+ *
+ * @param requested_addr
+ * The starting address for the new mapping range.
+ * @param offset
+ * The offset for the mapping range.
+ * @param size
+ * The size for the mapping range.
+ * @return
+ * - On success, the function returns a pointer to the mapped area.
+ * - On error, the value MAP_FAILED is returned.
+ */
+void *pci_map_private_resource(void *requested_addr, off_t offset,
+ size_t size);
+
+/**
* Map a particular resource from a file.
*
* @param requested_addr
--
2.7.4
next prev parent reply other threads:[~2018-01-10 9:13 UTC|newest]
Thread overview: 494+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-28 15:44 [dpdk-dev] [RFC] Add hot plug event in rte eal interrupt and inplement it in i40e driver Jeff Guo
2017-05-30 7:14 ` Gaëtan Rivet
2017-06-07 7:40 ` Wu, Jingjing
2017-06-15 21:22 ` Gaëtan Rivet
2017-06-21 2:50 ` Guo, Jia
2017-06-29 17:27 ` Stephen Hemminger
2017-06-30 3:36 ` Wu, Jingjing
2017-06-07 7:27 ` Wu, Jingjing
2017-06-28 11:07 ` [dpdk-dev] [PATCH v2 1/2] eal: add uevent api for hot plug Jeff Guo
2017-06-28 11:07 ` [dpdk-dev] [PATCH v2 2/2] net/i40e: add hot plug monitor in i40e Jeff Guo
2017-06-29 1:41 ` Wu, Jingjing
2017-06-29 4:31 ` Guo, Jia
2017-06-29 3:34 ` Stephen Hemminger
2017-06-29 4:48 ` Wu, Jingjing
2017-06-29 7:47 ` Guo, Jia
2017-06-29 4:37 ` [dpdk-dev] [PATCH v3 0/2] add uevent api for hot plug Jeff Guo
2017-06-29 4:37 ` [dpdk-dev] [PATCH v3 1/2] eal: " Jeff Guo
2017-06-30 3:38 ` Wu, Jingjing
2017-06-29 4:37 ` [dpdk-dev] [PATCH v3 2/2] net/i40e: add hot plug monitor in i40e Jeff Guo
2017-06-30 3:38 ` Wu, Jingjing
2018-04-13 8:30 ` [dpdk-dev] [PATCH V22 0/4] add device event monitor framework Jeff Guo
2018-04-13 8:30 ` [dpdk-dev] [PATCH V22 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-13 8:30 ` [dpdk-dev] [PATCH V22 2/4] eal: add device event monitor framework Jeff Guo
2018-04-13 8:30 ` [dpdk-dev] [PATCH V22 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-13 8:30 ` [dpdk-dev] [PATCH V22 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-04-13 10:03 ` [dpdk-dev] [PATCH V22 0/4] add device event monitor framework Thomas Monjalon
2018-04-18 13:38 ` [dpdk-dev] [PATCH V20 0/4] add hot plug recovery mechanism Jeff Guo
2018-04-18 13:38 ` [dpdk-dev] [PATCH V20 1/4] bus/pci: introduce device hot unplug handle Jeff Guo
2018-04-20 10:32 ` Ananyev, Konstantin
2018-05-03 3:05 ` Guo, Jia
2018-04-18 13:38 ` [dpdk-dev] [PATCH V20 2/4] eal: add failure handler mechanism for hot plug Jeff Guo
2018-04-19 1:30 ` Zhang, Qi Z
2018-04-20 11:14 ` Ananyev, Konstantin
2018-05-03 3:13 ` Guo, Jia
2018-04-20 16:16 ` Ananyev, Konstantin
2018-05-03 3:17 ` Guo, Jia
2018-04-18 13:38 ` [dpdk-dev] [PATCH V20 3/4] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-04-18 13:38 ` [dpdk-dev] [PATCH V20 4/4] app/testpmd: show example to handler " Jeff Guo
2018-05-03 7:25 ` Matan Azrad
2018-05-03 9:35 ` Guo, Jia
2018-05-03 11:27 ` Matan Azrad
2018-05-03 8:57 ` [dpdk-dev] [PATCH V21 0/4] hot plug recovery mechanism Jeff Guo
2018-05-03 8:57 ` [dpdk-dev] [PATCH V21 1/4] bus/pci: handle device hot unplug Jeff Guo
2018-05-03 8:57 ` [dpdk-dev] [PATCH V21 2/4] eal: add failure handle mechanism for hot plug Jeff Guo
2018-05-03 8:57 ` [dpdk-dev] [PATCH V21 3/4] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-05-03 8:57 ` [dpdk-dev] [PATCH V21 4/4] app/testpmd: show example to handle " Jeff Guo
2018-05-16 14:30 ` Iremonger, Bernard
2018-05-03 10:48 ` [dpdk-dev] [PATCH V21 0/4] hot plug recovery mechanism Jeff Guo
2018-05-03 10:48 ` [dpdk-dev] [PATCH V21 1/4] bus/pci: handle device hot unplug Jeff Guo
2018-05-03 10:48 ` [dpdk-dev] [PATCH V21 2/4] eal: add failure handle mechanism for hot plug Jeff Guo
2018-05-04 15:56 ` Ananyev, Konstantin
2018-05-08 14:57 ` Guo, Jia
2018-05-08 15:19 ` Ananyev, Konstantin
2018-05-03 10:48 ` [dpdk-dev] [PATCH V21 3/4] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-05-03 10:48 ` [dpdk-dev] [PATCH V21 4/4] app/testpmd: show example to handle " Jeff Guo
2018-06-14 12:59 ` Iremonger, Bernard
2018-06-15 8:32 ` Guo, Jia
2018-06-22 11:51 ` [dpdk-dev] [PATCH v2 0/4] hot plug failure handle mechanism Jeff Guo
2018-06-22 11:51 ` [dpdk-dev] [PATCH v2 1/4] bus/pci: handle device hot unplug Jeff Guo
2018-06-22 12:59 ` Gaëtan Rivet
2018-06-26 15:30 ` Guo, Jia
2018-06-22 11:51 ` [dpdk-dev] [PATCH v2 2/4] eal: add failure handle mechanism for hot plug Jeff Guo
2018-06-22 11:51 ` [dpdk-dev] [PATCH v2 3/4] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-06-22 11:51 ` [dpdk-dev] [PATCH v2 4/4] app/testpmd: show example to handle " Jeff Guo
2018-06-26 10:06 ` Iremonger, Bernard
2018-06-26 11:58 ` Matan Azrad
2018-06-26 15:33 ` Guo, Jia
2018-06-26 15:36 ` [dpdk-dev] [PATCH V3 1/4] bus/pci: handle device " Jeff Guo
2018-06-26 15:36 ` [dpdk-dev] [PATCH V3 2/4] eal: add failure handle mechanism for hot plug Jeff Guo
2018-06-26 15:36 ` [dpdk-dev] [PATCH V3 3/4] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-06-26 15:36 ` [dpdk-dev] [PATCH V3 4/4] app/testpmd: show example to handle " Jeff Guo
2018-06-26 17:07 ` Matan Azrad
2018-06-27 3:56 ` Guo, Jia
2018-06-27 6:05 ` Matan Azrad
2018-06-29 10:26 ` Guo, Jia
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 0/9] hot plug failure handle mechanism Jeff Guo
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 1/9] bus: introduce hotplug failure handler Jeff Guo
2018-07-03 22:21 ` Thomas Monjalon
2018-07-04 7:16 ` Guo, Jia
2018-07-04 7:55 ` Thomas Monjalon
2018-07-05 6:23 ` Guo, Jia
2018-07-05 8:30 ` Thomas Monjalon
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 2/9] bus/pci: implement hotplug handler operation Jeff Guo
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 3/9] bus: introduce sigbus handler Jeff Guo
2018-07-10 21:55 ` Stephen Hemminger
2018-07-11 2:15 ` Jeff Guo
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 4/9] bus/pci: implement sigbus handler operation Jeff Guo
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 5/9] bus: add helper to handle sigbus Jeff Guo
2018-06-29 10:51 ` Ananyev, Konstantin
2018-06-29 11:23 ` Guo, Jia
2018-06-29 12:21 ` Ananyev, Konstantin
2018-06-29 12:52 ` Gaëtan Rivet
2018-07-03 11:24 ` Guo, Jia
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 6/9] eal: add failure handle mechanism for hot plug Jeff Guo
2018-06-29 10:49 ` Ananyev, Konstantin
2018-06-29 11:15 ` Guo, Jia
2018-06-29 12:06 ` Ananyev, Konstantin
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 7/9] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-07-03 12:12 ` Ferruh Yigit
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 8/9] app/testpmd: show example to handle " Jeff Guo
2018-07-01 7:46 ` Matan Azrad
2018-07-03 9:35 ` Guo, Jia
2018-07-03 22:44 ` Thomas Monjalon
2018-07-04 3:48 ` Guo, Jia
2018-07-04 7:06 ` Matan Azrad
2018-07-05 7:54 ` Guo, Jia
2018-06-29 10:30 ` [dpdk-dev] [PATCH V4 9/9] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 0/7] hot plug failure handle mechanism Jeff Guo
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-06 15:17 ` He, Shaopeng
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-06 15:17 ` He, Shaopeng
2018-07-09 5:29 ` Jeff Guo
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 3/7] bus: add sigbus handler Jeff Guo
2018-07-06 15:17 ` He, Shaopeng
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-06 15:18 ` He, Shaopeng
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-06 15:22 ` He, Shaopeng
2018-07-09 5:31 ` Jeff Guo
2018-07-08 13:30 ` Andrew Rybchenko
2018-07-09 5:33 ` Jeff Guo
2018-07-05 7:38 ` [dpdk-dev] [PATCH V5 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-06 15:22 ` He, Shaopeng
2018-07-08 13:46 ` Andrew Rybchenko
2018-07-09 5:40 ` Jeff Guo
2018-07-05 8:21 ` [dpdk-dev] [PATCH V5 0/7] hot plug failure handle mechanism Jeff Guo
2018-07-05 8:21 ` [dpdk-dev] [PATCH V5 7/7] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 0/7] hotplug failure handle mechanism Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 3/7] bus: add sigbus handler Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-09 7:42 ` Gaëtan Rivet
2018-07-09 8:12 ` Jeff Guo
2018-07-09 6:51 ` [dpdk-dev] [PATCH v6 7/7] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 0/7] hotplug failure handle mechanism Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 3/7] bus: add sigbus handler Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-09 11:56 ` [dpdk-dev] [PATCH v7 7/7] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-07-09 12:00 ` [dpdk-dev] [PATCH v7 0/7] hotplug failure handle mechanism Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 3/7] bus: add sigbus handler Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-09 13:48 ` Andrew Rybchenko
2018-07-10 8:22 ` Jeff Guo
2018-07-10 8:40 ` Gaëtan Rivet
2018-07-10 10:07 ` Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-09 13:50 ` Andrew Rybchenko
2018-07-10 8:23 ` Jeff Guo
2018-07-09 12:01 ` [dpdk-dev] [PATCH v7 7/7] igb_uio: fix uio release issue when hot unplug Jeff Guo
2018-07-09 22:44 ` Stephen Hemminger
2018-07-10 8:28 ` Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 0/7] hotplug failure handle mechanism Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 3/7] bus: add sigbus handler Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-10 11:03 ` [dpdk-dev] [PATCH v8 7/7] igb_uio: fix uio release issue " Jeff Guo
2018-07-10 21:48 ` Stephen Hemminger
2018-07-11 3:10 ` Jeff Guo
2018-07-10 21:52 ` Stephen Hemminger
2018-07-11 2:46 ` Jeff Guo
2018-07-11 10:01 ` Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 0/7] hotplug failure handle mechanism Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 1/7] bus: add hotplug failure handler Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 2/7] bus/pci: implement hotplug failure handler ops Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 3/7] bus: add sigbus handler Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 4/7] bus/pci: implement sigbus handler operation Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 5/7] bus: add helper to handle sigbus Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 6/7] eal: add failure handle mechanism for hotplug Jeff Guo
2018-07-11 10:41 ` [dpdk-dev] [PATCH v9 7/7] igb_uio: fix unexpected remove issue " Jeff Guo
2018-07-12 1:57 ` He, Shaopeng
2018-07-11 15:46 ` [dpdk-dev] [PATCH v9 0/7] hotplug failure handle mechanism Stephen Hemminger
2018-07-12 3:14 ` Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 0/8] " Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 1/8] bus: add memory failure handler Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 2/8] bus/pci: implement memory failure handler ops Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 3/8] bus: add sigbus handler Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 4/8] bus/pci: implement sigbus handler ops Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 5/8] bus: add helper to handle sigbus Jeff Guo
2018-08-17 10:48 ` Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 6/8] eal: add failure handle mechanism for hotplug Jeff Guo
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 7/8] igb_uio: fix unexpected remove issue " Jeff Guo
2018-09-27 15:07 ` Ferruh Yigit
2018-10-18 5:51 ` Jeff Guo
2018-10-18 6:27 ` [dpdk-dev] [PATCH v1] igb_uio: fix unexpected removal for hot-unplug Jeff Guo
2018-10-18 16:06 ` Ferruh Yigit
2018-10-19 8:35 ` Jeff Guo
2018-10-22 11:13 ` Ferruh Yigit
2018-10-24 23:14 ` Thomas Monjalon
2018-08-17 10:48 ` [dpdk-dev] [PATCH v10 8/8] testpmd: use hotplug failure handle mechanism Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 0/7] hot-unplug " Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 1/7] bus: add hot-unplug handler Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 3/7] bus: add sigbus handler Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 5/7] bus: add helper to handle sigbus Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-09-30 10:24 ` [dpdk-dev] [PATCH v11 7/7] testpmd: use hot-unplug failure handle mechanism Jeff Guo
2018-09-30 11:29 ` [dpdk-dev] [PATCH v11 0/7] " Jeff Guo
2018-09-30 11:29 ` [dpdk-dev] [PATCH v11 1/7] bus: add hot-unplug handler Jeff Guo
2018-09-30 11:29 ` [dpdk-dev] [PATCH v11 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-09-30 11:29 ` [dpdk-dev] [PATCH v11 3/7] bus: add sigbus handler Jeff Guo
2018-09-30 11:30 ` [dpdk-dev] [PATCH v11 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-09-30 11:30 ` [dpdk-dev] [PATCH v11 5/7] bus: add helper to handle sigbus Jeff Guo
2018-09-30 11:30 ` [dpdk-dev] [PATCH v11 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-09-30 19:46 ` Ananyev, Konstantin
2018-10-02 4:01 ` Jeff Guo
2018-09-30 11:30 ` [dpdk-dev] [PATCH v11 7/7] testpmd: use hot-unplug failure handle mechanism Jeff Guo
2018-10-01 9:00 ` [dpdk-dev] [PATCH v11 0/7] " Stephen Hemminger
2018-10-01 9:55 ` Jerin Jacob
2018-10-02 10:08 ` Jeff Guo
2018-10-02 9:57 ` Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 " Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 1/7] bus: add hot-unplug handler Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 3/7] bus: add sigbus handler Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v12 5/7] bus: add helper to handle sigbus Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v11 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-10-02 12:32 ` [dpdk-dev] [PATCH v11 7/7] testpmd: use hot-unplug failure handle mechanism Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 0/7] " Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 1/7] bus: add hot-unplug handler Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 3/7] bus: add sigbus handler Jeff Guo
2018-10-02 14:32 ` Burakov, Anatoly
2018-10-04 3:14 ` Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-10-02 14:39 ` Burakov, Anatoly
2018-10-04 3:58 ` Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 5/7] bus: add helper to handle sigbus Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-10-02 13:34 ` Ananyev, Konstantin
2018-10-04 2:31 ` Jeff Guo
2018-10-02 15:53 ` Burakov, Anatoly
2018-10-02 16:00 ` Ananyev, Konstantin
2018-10-04 3:12 ` Jeff Guo
2018-10-02 12:35 ` [dpdk-dev] [PATCH v12 7/7] testpmd: use hot-unplug failure handle mechanism Jeff Guo
2018-10-02 15:21 ` Iremonger, Bernard
2018-10-04 2:56 ` Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 0/7] " Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 1/7] bus: add hot-unplug handler Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 3/7] bus: add sigbus handler Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 5/7] bus: add helper to handle sigbus Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-10-04 6:30 ` [dpdk-dev] [PATCH v13 7/7] app/testpmd: use hotplug failure handler Jeff Guo
2018-10-04 10:31 ` Iremonger, Bernard
2018-10-04 13:53 ` Jeff Guo
2018-10-04 12:02 ` [dpdk-dev] [PATCH v13 0/7] hot-unplug failure handle mechanism Ananyev, Konstantin
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 " Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 1/7] bus: add hot-unplug handler Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 3/7] bus: add sigbus handler Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 5/7] bus: add helper to handle sigbus Jeff Guo
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-10-15 10:43 ` Thomas Monjalon
2018-10-04 14:46 ` [dpdk-dev] [PATCH v14 7/7] app/testpmd: use hotplug failure handler Jeff Guo
2018-10-05 12:26 ` Iremonger, Bernard
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 0/7] hot-unplug failure handle mechanism Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 1/7] bus: add hot-unplug handler Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 2/7] bus/pci: implement hot-unplug handler ops Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 3/7] bus: add sigbus handler Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 4/7] bus/pci: implement sigbus handler ops Jeff Guo
2018-10-15 13:41 ` Thomas Monjalon
2018-10-15 14:16 ` Thomas Monjalon
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 5/7] bus: add helper to handle sigbus Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 6/7] eal: add failure handle mechanism for hot-unplug Jeff Guo
2018-10-15 11:27 ` [dpdk-dev] [PATCH v15 7/7] app/testpmd: use hotplug failure handler Jeff Guo
2018-10-15 20:19 ` [dpdk-dev] [PATCH v15 0/7] hot-unplug failure handle mechanism Thomas Monjalon
2017-06-29 5:01 ` [dpdk-dev] [PATCH v3 0/2] add uevent api for hot plug Jeff Guo
2017-06-29 5:01 ` [dpdk-dev] [PATCH v3 1/2] eal: " Jeff Guo
2017-07-04 7:15 ` Wu, Jingjing
2017-09-03 15:49 ` [dpdk-dev] [PATCH v4 0/2] add uevent monitor " Jeff Guo
2017-09-03 15:49 ` [dpdk-dev] [PATCH v4 1/2] eal: " Jeff Guo
2017-09-03 16:10 ` Stephen Hemminger
2017-09-03 16:12 ` Stephen Hemminger
2017-09-05 5:28 ` Guo, Jia
2017-09-03 16:14 ` Stephen Hemminger
2017-09-03 16:16 ` Stephen Hemminger
2017-09-03 15:49 ` [dpdk-dev] [PATCH v4 2/2] app/testpmd: use uevent to monitor hot removal Jeff Guo
2017-09-20 4:12 ` [dpdk-dev] [PATCH v5 0/2] add uevent monitor for hot plug Jeff Guo
2017-09-19 18:44 ` Jan Blunck
2017-09-20 6:51 ` Guo, Jia
2017-09-20 4:12 ` [dpdk-dev] [PATCH v5 1/2] eal: " Jeff Guo
2017-09-20 4:12 ` [dpdk-dev] [PATCH v5 2/2] app/testpmd: use uevent to monitor hot removal Jeff Guo
2017-11-01 20:16 ` [dpdk-dev] [PATCH v6 0/2] add uevent monitor for hot plug Jeff Guo
2017-11-01 20:16 ` [dpdk-dev] [PATCH v6 1/2] eal: " Jeff Guo
2017-11-01 21:36 ` Stephen Hemminger
2017-11-01 21:41 ` Stephen Hemminger
2017-11-08 5:39 ` Guo, Jia
2017-12-25 8:30 ` Guo, Jia
2017-12-25 18:06 ` Stephen Hemminger
2018-01-02 9:40 ` Guo, Jia
2017-11-01 20:16 ` [dpdk-dev] [PATCH v6 2/2] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-03 1:42 ` [dpdk-dev] [PATCH v7 0/2] add uevent monitor for hot plug Jeff Guo
2018-01-03 1:42 ` [dpdk-dev] [PATCH v7 1/2] eal: " Jeff Guo
2018-01-02 17:02 ` Matan Azrad
2018-01-08 5:26 ` Guo, Jia
2018-01-08 8:14 ` Matan Azrad
2018-01-08 6:05 ` Guo, Jia
2018-01-09 0:39 ` Thomas Monjalon
2018-01-09 8:25 ` Guo, Jia
2018-01-09 10:31 ` Mordechay Haimovsky
2018-01-09 10:47 ` Thomas Monjalon
2018-01-09 11:39 ` Guo, Jia
2018-01-09 11:44 ` Thomas Monjalon
2018-01-09 12:08 ` Guo, Jia
2018-01-09 12:42 ` Gaëtan Rivet
2018-01-10 9:29 ` Guo, Jia
2018-01-09 13:44 ` Thomas Monjalon
2018-01-10 9:32 ` Guo, Jia
2018-01-09 11:45 ` Guo, Jia
2018-01-09 11:38 ` Thomas Monjalon
2018-01-09 11:58 ` Guo, Jia
2018-01-09 13:40 ` Thomas Monjalon
2018-01-03 1:42 ` [dpdk-dev] [PATCH v7 2/2] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-10 3:30 ` [dpdk-dev] [PATCH V8 0/3] add uevent mechanism in eal framework Jeff Guo
2018-01-10 3:30 ` [dpdk-dev] [PATCH V8 1/3] eal: add uevent monitor for hot plug Jeff Guo
2018-01-10 3:30 ` [dpdk-dev] [PATCH V8 2/3] igb_uio: fix device removal issuse for hotplug Jeff Guo
2018-01-10 3:30 ` [dpdk-dev] [PATCH V8 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-10 9:12 ` [dpdk-dev] [PATCH V9 0/5] add uevent mechanism in eal framework Jeff Guo
2018-01-10 9:12 ` [dpdk-dev] [PATCH V9 1/5] eal: add uevent monitor api and callback func Jeff Guo
2018-01-10 16:34 ` Stephen Hemminger
2018-01-11 1:43 ` Thomas Monjalon
2018-01-11 14:24 ` Guo, Jia
2018-01-10 9:12 ` [dpdk-dev] [PATCH V9 2/5] eal: add uevent pass and process function Jeff Guo
2018-01-11 14:05 ` [dpdk-dev] [PATCH V10 1/2] eal: add uevent monitor api and callback func Jeff Guo
2018-01-11 14:05 ` [dpdk-dev] [PATCH V10 2/2] eal: add uevent pass and process function Jeff Guo
2018-01-14 23:24 ` Thomas Monjalon
2018-01-15 10:52 ` Guo, Jia
2018-01-15 11:29 ` Thomas Monjalon
2018-01-15 15:33 ` Guo, Jia
2018-01-15 10:48 ` [dpdk-dev] [PATCH V11 1/3] eal: add uevent monitor api and callback func Jeff Guo
2018-01-15 10:48 ` [dpdk-dev] [PATCH V11 2/3] eal: add uevent pass and process function Jeff Guo
2018-01-17 22:00 ` Thomas Monjalon
2018-01-18 4:17 ` Guo, Jia
2018-01-15 10:48 ` [dpdk-dev] [PATCH V11 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-18 4:12 ` [dpdk-dev] [PATCH V12 1/3] eal: add uevent monitor api and callback func Jeff Guo
2018-01-18 4:12 ` [dpdk-dev] [PATCH V12 2/3] eal: add uevent pass and process function Jeff Guo
2018-01-24 15:00 ` Wu, Jingjing
2018-01-18 4:12 ` [dpdk-dev] [PATCH V12 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-24 15:21 ` Wu, Jingjing
2018-01-25 14:58 ` Guo, Jia
2018-01-25 14:46 ` [dpdk-dev] [PATCH V13 1/3] eal: add uevent monitor api and callback func Jeff Guo
2018-01-25 14:46 ` [dpdk-dev] [PATCH V13 2/3] eal: add uevent pass and process function Jeff Guo
2018-01-25 14:46 ` [dpdk-dev] [PATCH V13 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-26 3:49 ` [dpdk-dev] [PATCH V13 1/3] eal: add uevent monitor api and callback func Jeff Guo
2018-01-26 3:49 ` [dpdk-dev] [PATCH V13 2/3] eal: add uevent pass and process function Jeff Guo
2018-01-26 3:49 ` [dpdk-dev] [PATCH V13 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-30 12:20 ` [dpdk-dev] [PATCH V14 1/3] eal: add uevent monitor api and callback func Jeff Guo
2018-01-30 12:20 ` [dpdk-dev] [PATCH V14 2/3] eal: add uevent pass and process function Jeff Guo
2018-01-30 12:21 ` [dpdk-dev] [PATCH V14 3/3] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-31 5:21 ` Wu, Jingjing
2018-03-21 5:27 ` [dpdk-dev] [PATCH V15 1/5] eal: add uevent monitor api and callback func Jeff Guo
2018-03-21 5:27 ` [dpdk-dev] [PATCH V15 2/5] eal: add uevent pass and process function Jeff Guo
2018-03-21 14:20 ` Tan, Jianfeng
2018-03-22 8:20 ` Guo, Jia
2018-03-21 5:27 ` [dpdk-dev] [PATCH V15 3/5] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-03-26 10:55 ` [dpdk-dev] [PATCH V16 0/3] add device event monitor framework Jeff Guo
2018-03-26 10:55 ` [dpdk-dev] [PATCH V16 1/3] eal: add device event handle in interrupt thread Jeff Guo
2018-03-26 10:55 ` [dpdk-dev] [PATCH V16 2/3] eal: add device event monitor framework Jeff Guo
2018-03-26 10:55 ` [dpdk-dev] [PATCH V16 3/3] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-03-26 11:20 ` [dpdk-dev] [PATCH V16 0/4] add device event monitor framework Jeff Guo
2018-03-26 11:20 ` [dpdk-dev] [PATCH V16 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-03-27 9:26 ` Tan, Jianfeng
2018-03-28 8:14 ` Guo, Jia
2018-03-26 11:20 ` [dpdk-dev] [PATCH V16 2/4] eal: add device event monitor framework Jeff Guo
2018-03-28 3:39 ` Tan, Jianfeng
2018-03-28 8:12 ` Guo, Jia
2018-03-26 11:20 ` [dpdk-dev] [PATCH V16 3/4] eal/linux: uevent parse and process Jeff Guo
2018-03-28 16:15 ` Tan, Jianfeng
2018-03-29 13:32 ` Van Haaren, Harry
2018-03-29 15:03 ` Guo, Jia
2018-03-29 15:08 ` Guo, Jia
2018-03-26 11:20 ` [dpdk-dev] [PATCH V16 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-03-28 16:41 ` Tan, Jianfeng
2018-03-29 16:00 ` [dpdk-dev] [PATCH V17 0/4] add device event monitor framework Jeff Guo
2018-03-29 16:00 ` [dpdk-dev] [PATCH V17 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-03-29 16:00 ` [dpdk-dev] [PATCH V17 2/4] eal: add device event monitor framework Jeff Guo
2018-03-29 16:00 ` [dpdk-dev] [PATCH V17 3/4] eal/linux: uevent parse and process Jeff Guo
2018-03-29 16:59 ` Stephen Hemminger
2018-04-02 4:20 ` Guo, Jia
2018-03-29 17:00 ` Stephen Hemminger
2018-04-02 4:19 ` Guo, Jia
2018-03-29 16:00 ` [dpdk-dev] [PATCH V17 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-03-29 17:00 ` Stephen Hemminger
2018-04-02 4:18 ` Guo, Jia
2018-04-02 5:49 ` Wu, Jingjing
2018-04-02 11:31 ` Guo, Jia
2018-04-03 10:33 ` [dpdk-dev] [PATCH V18 0/4] add device event monitor framework Jeff Guo
2018-04-03 10:33 ` [dpdk-dev] [PATCH V18 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-04 1:47 ` Tan, Jianfeng
2018-04-04 4:00 ` Guo, Jia
2018-04-03 10:33 ` [dpdk-dev] [PATCH V18 2/4] eal: add device event monitor framework Jeff Guo
2018-04-04 2:53 ` Tan, Jianfeng
2018-04-05 3:44 ` Guo, Jia
2018-04-03 10:33 ` [dpdk-dev] [PATCH V18 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-04 3:15 ` Tan, Jianfeng
2018-04-05 6:09 ` Guo, Jia
2018-04-03 10:33 ` [dpdk-dev] [PATCH V18 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-04-04 3:22 ` Tan, Jianfeng
2018-04-04 16:31 ` Matan Azrad
2018-04-05 8:40 ` Guo, Jia
2018-04-05 9:03 ` Tan, Jianfeng
2018-04-05 8:32 ` [dpdk-dev] [PATCH V19 0/4] add device event monitor framework Jeff Guo
2018-04-05 8:32 ` [dpdk-dev] [PATCH V19 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-05 8:32 ` [dpdk-dev] [PATCH V19 2/4] eal: add device event monitor framework Jeff Guo
2018-04-05 10:15 ` Tan, Jianfeng
2018-04-05 8:32 ` [dpdk-dev] [PATCH V19 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-05 8:32 ` [dpdk-dev] [PATCH V19 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-04-05 9:02 ` [dpdk-dev] [PATCH V19 0/4] add device event monitor framework Jeff Guo
2018-04-05 9:02 ` [dpdk-dev] [PATCH V19 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-05 9:02 ` [dpdk-dev] [PATCH V19 2/4] eal: add device event monitor framework Jeff Guo
2018-04-05 9:02 ` [dpdk-dev] [PATCH V19 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-05 11:05 ` Tan, Jianfeng
2018-04-11 11:40 ` Guo, Jia
2018-04-05 9:02 ` [dpdk-dev] [PATCH V19 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-04-05 16:10 ` [dpdk-dev] [PATCH V20 0/4] add device event monitor framework Jeff Guo
2018-04-05 16:10 ` [dpdk-dev] [PATCH V20 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-05 16:10 ` [dpdk-dev] [PATCH V20 2/4] eal: add device event monitor framework Jeff Guo
2018-04-05 21:54 ` Thomas Monjalon
2018-04-06 3:51 ` Guo, Jia
2018-04-05 16:10 ` [dpdk-dev] [PATCH V20 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-05 16:22 ` Tan, Jianfeng
2018-04-06 3:47 ` Guo, Jia
2018-04-05 21:58 ` Thomas Monjalon
2018-04-06 3:52 ` Guo, Jia
2018-04-05 16:10 ` [dpdk-dev] [PATCH V20 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-04-05 21:48 ` Thomas Monjalon
2018-04-06 3:51 ` Guo, Jia
2018-04-06 3:54 ` [dpdk-dev] [PATCH V21 0/4] add device event monitor framework Jeff Guo
2018-04-06 3:54 ` [dpdk-dev] [PATCH V21 1/4] eal: add device event handle in interrupt thread Jeff Guo
2018-04-06 3:55 ` [dpdk-dev] [PATCH V21 2/4] eal: add device event monitor framework Jeff Guo
2018-04-12 8:36 ` Thomas Monjalon
2018-04-06 3:55 ` [dpdk-dev] [PATCH V21 3/4] eal/linux: uevent parse and process Jeff Guo
2018-04-06 3:55 ` [dpdk-dev] [PATCH V21 4/4] app/testpmd: enable device hotplug monitoring Jeff Guo
2018-01-31 0:44 ` [dpdk-dev] [PATCH V14 1/3] eal: add uevent monitor api and callback func Stephen Hemminger
2018-02-02 10:45 ` Guo, Jia
2018-01-26 16:53 ` [dpdk-dev] [PATCH V13 " Bruce Richardson
2018-01-27 3:48 ` Guo, Jia
2018-01-30 0:14 ` Thomas Monjalon
2018-01-30 12:20 ` Guo, Jia
2018-01-19 1:13 ` [dpdk-dev] [PATCH V12 " Thomas Monjalon
2018-01-19 2:51 ` Guo, Jia
2018-01-24 14:52 ` Wu, Jingjing
2018-01-25 14:57 ` Guo, Jia
2018-01-17 21:59 ` [dpdk-dev] [PATCH V11 " Thomas Monjalon
2018-01-18 4:23 ` Guo, Jia
2018-01-19 1:10 ` Thomas Monjalon
2018-01-14 23:16 ` [dpdk-dev] [PATCH V10 1/2] " Thomas Monjalon
2018-01-15 10:55 ` Guo, Jia
2018-01-15 11:32 ` Thomas Monjalon
2018-01-15 15:29 ` Guo, Jia
2018-01-10 9:12 ` [dpdk-dev] [PATCH V9 3/5] app/testpmd: use uevent to monitor hotplug Jeff Guo
2018-01-10 9:12 ` Jeff Guo [this message]
2018-01-10 9:12 ` [dpdk-dev] [PATCH V9 5/5] pci: add driver auto bind for hot insertion Jeff Guo
2018-03-21 6:11 ` [dpdk-dev] [PATCH V15 1/2] pci_uio: add uevent hotplug failure handler in uio Jeff Guo
2018-03-21 6:11 ` [dpdk-dev] [PATCH V15 2/2] pci: add driver auto bind for hot insertion Jeff Guo
2018-03-30 3:35 ` [dpdk-dev] [PATCH V15 1/2] pci_uio: add uevent hotplug failure handler in uio Tan, Jianfeng
2017-12-14 9:48 ` [dpdk-dev] [PATCH v6 0/2] add uevent monitor for hot plug Mordechay Haimovsky
2017-12-14 10:21 ` Gaëtan Rivet
2017-12-22 0:16 ` Guo, Jia
2017-12-24 15:12 ` Mordechay Haimovsky
2018-01-02 9:43 ` Guo, Jia
2017-06-29 5:01 ` [dpdk-dev] [PATCH v3 2/2] net/i40e: add hot plug monitor in i40e Jeff Guo
2017-07-04 7:15 ` Wu, Jingjing
2017-07-07 7:56 ` Thomas Monjalon
2017-07-07 10:17 ` Thomas Monjalon
2017-07-07 14:08 ` Guo, Jia
2017-07-09 22:35 ` Thomas Monjalon
2017-07-12 7:36 ` Guo, Jia
2017-06-29 2:25 ` [dpdk-dev] [PATCH v2 1/2] eal: add uevent api for hot plug Wu, Jingjing
2017-06-29 4:29 ` Guo, Jia
2017-07-04 23:45 ` Thomas Monjalon
2017-07-05 3:02 ` Guo, Jia
2017-07-05 7:32 ` Thomas Monjalon
2017-07-05 9:04 ` Guo, Jia
2017-08-22 14:56 ` Guo, Jia
2017-08-28 15:50 ` Gaëtan Rivet
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=1515575544-2141-5-git-send-email-jia.guo@intel.com \
--to=jia.guo@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=gaetan.rivet@6wind.com \
--cc=helin.zhang@intel.com \
--cc=jblunck@infradead.org \
--cc=jingjing.wu@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=motih@mellanox.com \
--cc=shreyansh.jain@nxp.com \
--cc=stephen@networkplumber.org \
--cc=thomas@monjalon.net \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).