From: "Tan, Jianfeng" <jianfeng.tan@intel.com>
To: "Guo, Jia" <jia.guo@intel.com>,
"stephen@networkplumber.org" <stephen@networkplumber.org>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Yigit, Ferruh" <ferruh.yigit@intel.com>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"gaetan.rivet@6wind.com" <gaetan.rivet@6wind.com>,
"Wu, Jingjing" <jingjing.wu@intel.com>,
"thomas@monjalon.net" <thomas@monjalon.net>,
"motih@mellanox.com" <motih@mellanox.com>,
"Van Haaren, Harry" <harry.van.haaren@intel.com>
Cc: "jblunck@infradead.org" <jblunck@infradead.org>,
"shreyansh.jain@nxp.com" <shreyansh.jain@nxp.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"Zhang, Helin" <helin.zhang@intel.com>
Subject: Re: [dpdk-dev] [PATCH V18 2/4] eal: add device event monitor framework
Date: Wed, 4 Apr 2018 02:53:15 +0000 [thread overview]
Message-ID: <ED26CBA2FAD1BF48A8719AEF02201E36514C80E7@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1522751639-2315-3-git-send-email-jia.guo@intel.com>
> -----Original Message-----
> From: Guo, Jia
> Sent: Tuesday, April 3, 2018 6:34 PM
> To: stephen@networkplumber.org; Richardson, Bruce; Yigit, Ferruh;
> Ananyev, Konstantin; gaetan.rivet@6wind.com; Wu, Jingjing;
> thomas@monjalon.net; motih@mellanox.com; Van Haaren, Harry; Tan,
> Jianfeng
> Cc: jblunck@infradead.org; shreyansh.jain@nxp.com; dev@dpdk.org; Guo,
> Jia; Zhang, Helin
> Subject: [PATCH V18 2/4] eal: add device event monitor framework
>
> This patch aims to add a general device event monitor framework at
> EAL device layer, for device hotplug awareness and actions adopted
> accordingly. It could also expand for all other types of device event
> monitor, but not in this scope at the stage.
>
> To get started, users firstly call below new added APIs to enable/disable
> the device event monitor mechanism:
> - rte_dev_event_monitor_start
> - rte_dev_event_monitor_stop
>
> Then users shell register or unregister callbacks through the new added
> APIs. Callbacks can be some device specific, or for all devices.
> -rte_dev_event_callback_register
> -rte_dev_event_callback_unregister
>
> Use hotplug case for example, when device hotplug insertion or hotplug
> removal, we will get notified from kernel, then call user's callbacks
> accordingly to handle it, such as detach or attach the device from the
> bus, and could benefit further fail-safe or live-migration.
>
> Signed-off-by: Jeff Guo <jia.guo@intel.com>
> ---
> v18->v17:
> add feature announcement in release document, fix bsp compile issue.
> ---
> doc/guides/rel_notes/release_18_05.rst | 9 ++
> lib/librte_eal/bsdapp/eal/Makefile | 1 +
> lib/librte_eal/bsdapp/eal/eal_dev.c | 21 ++++
> lib/librte_eal/bsdapp/eal/meson.build | 1 +
> lib/librte_eal/common/eal_common_dev.c | 168
> ++++++++++++++++++++++++++++++++
> lib/librte_eal/common/eal_private.h | 15 +++
> lib/librte_eal/common/include/rte_dev.h | 94 ++++++++++++++++++
> lib/librte_eal/linuxapp/eal/Makefile | 1 +
> lib/librte_eal/linuxapp/eal/eal_dev.c | 22 +++++
> lib/librte_eal/linuxapp/eal/meson.build | 1 +
> lib/librte_eal/rte_eal_version.map | 8 ++
> 11 files changed, 341 insertions(+)
> create mode 100644 lib/librte_eal/bsdapp/eal/eal_dev.c
> create mode 100644 lib/librte_eal/linuxapp/eal/eal_dev.c
>
> diff --git a/doc/guides/rel_notes/release_18_05.rst
> b/doc/guides/rel_notes/release_18_05.rst
> index 3923dc2..37e00c4 100644
> --- a/doc/guides/rel_notes/release_18_05.rst
> +++ b/doc/guides/rel_notes/release_18_05.rst
> @@ -41,6 +41,15 @@ New Features
> Also, make sure to start the actual text at the margin.
>
> =========================================================
>
> +* **Added device event monitor framework.**
> +
> + Added a general device event monitor framework at EAL, for device
> dynamic management.
> + Such as device hotplug awareness and actions adopted accordingly. The list
> of new APIs:
> +
> + * ``rte_dev_event_monitor_start`` and ``rte_dev_event_monitor_stop``
> are for
> + the event monitor enable and disable.
> + * ``rte_dev_event_callback_register`` and
> ``rte_dev_event_callback_unregister``
> + are for the user's callbacks register and unregister.
>
> API Changes
> -----------
> diff --git a/lib/librte_eal/bsdapp/eal/Makefile
> b/lib/librte_eal/bsdapp/eal/Makefile
> index dd455e6..c0921dd 100644
> --- a/lib/librte_eal/bsdapp/eal/Makefile
> +++ b/lib/librte_eal/bsdapp/eal/Makefile
> @@ -33,6 +33,7 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) +=
> eal_lcore.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_timer.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_interrupts.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_alarm.c
> +SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_dev.c
>
> # from common dir
> SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_common_lcore.c
> diff --git a/lib/librte_eal/bsdapp/eal/eal_dev.c
> b/lib/librte_eal/bsdapp/eal/eal_dev.c
> new file mode 100644
> index 0000000..1c6c51b
> --- /dev/null
> +++ b/lib/librte_eal/bsdapp/eal/eal_dev.c
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2018 Intel Corporation
> + */
> +
> +#include <rte_log.h>
> +#include <rte_compat.h>
> +#include <rte_dev.h>
> +
> +int __rte_experimental
> +rte_dev_event_monitor_start(void)
> +{
> + RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
> + return -1;
> +}
> +
> +int __rte_experimental
> +rte_dev_event_monitor_stop(void)
> +{
> + RTE_LOG(ERR, EAL, "Device event is not supported for FreeBSD\n");
> + return -1;
> +}
> diff --git a/lib/librte_eal/bsdapp/eal/meson.build
> b/lib/librte_eal/bsdapp/eal/meson.build
> index e83fc91..6dfc533 100644
> --- a/lib/librte_eal/bsdapp/eal/meson.build
> +++ b/lib/librte_eal/bsdapp/eal/meson.build
> @@ -12,4 +12,5 @@ env_sources = files('eal_alarm.c',
> 'eal_timer.c',
> 'eal.c',
> 'eal_memory.c',
> + 'eal_dev.c'
> )
> diff --git a/lib/librte_eal/common/eal_common_dev.c
> b/lib/librte_eal/common/eal_common_dev.c
> index cd07144..e09e86f 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> @@ -14,9 +14,34 @@
> #include <rte_devargs.h>
> #include <rte_debug.h>
> #include <rte_log.h>
> +#include <rte_spinlock.h>
> +#include <rte_malloc.h>
>
> #include "eal_private.h"
>
> +/* spinlock for device callbacks */
It's for protect callback list.
> +static rte_spinlock_t dev_event_lock = RTE_SPINLOCK_INITIALIZER;
Put this spinlock where the list locates.
> +
> +/**
> + * The device event callback description.
> + *
> + * It contains callback address to be registered by user application,
> + * the pointer to the parameters for callback, and the device name.
> + */
> +struct dev_event_callback {
> + TAILQ_ENTRY(dev_event_callback) next; /**< Callbacks list */
> + rte_dev_event_cb_fn cb_fn; /**< Callback address */
> + void *cb_arg; /**< Callback parameter */
> + char *dev_name; /**< Callback device name, NULL is for all
> device */
> + uint32_t active; /**< Callback is executing */
> +};
> +
> +/** @internal Structure to keep track of registered callbacks */
> +TAILQ_HEAD(dev_event_cb_list, dev_event_callback);
> +
> +/* The device event callback list for all registered callbacks. */
> +static struct dev_event_cb_list dev_event_cbs;
> +
> static int cmp_detached_dev_name(const struct rte_device *dev,
> const void *_name)
> {
> @@ -207,3 +232,146 @@ rte_eal_hotplug_remove(const char *busname,
> const char *devname)
> rte_eal_devargs_remove(busname, devname);
> return ret;
> }
> +
> +int __rte_experimental
> +rte_dev_event_callback_register(const char *device_name,
> + rte_dev_event_cb_fn cb_fn,
> + void *cb_arg)
> +{
> + struct dev_event_callback *event_cb;
> + int ret;
> +
> + if (!cb_fn)
> + return -EINVAL;
> +
> + rte_spinlock_lock(&dev_event_lock);
> +
> + if (TAILQ_EMPTY(&dev_event_cbs))
> + TAILQ_INIT(&dev_event_cbs);
> +
> + TAILQ_FOREACH(event_cb, &dev_event_cbs, next) {
> + if (event_cb->cb_fn == cb_fn && event_cb->cb_arg ==
> cb_arg) {
> + if (device_name == NULL && event_cb->dev_name
> == NULL)
> + break;
> + if (device_name == NULL || event_cb->dev_name
> == NULL)
> + continue;
> + if (!strcmp(event_cb->dev_name, device_name))
> + break;
> + }
> + }
> +
> + /* create a new callback. */
> + if (event_cb == NULL) {
> + event_cb = malloc(sizeof(struct dev_event_callback));
> + if (event_cb != NULL) {
> + event_cb->cb_fn = cb_fn;
> + event_cb->cb_arg = cb_arg;
> + event_cb->active = 0;
> + if (!device_name) {
> + event_cb->dev_name = NULL;
> + } else {
> + event_cb->dev_name =
> strdup(device_name);
> + if (event_cb->dev_name == NULL) {
> + ret = -ENOMEM;
> + goto error;
> + }
> + }
> + TAILQ_INSERT_TAIL(&dev_event_cbs, event_cb,
> next);
> + } else {
> + RTE_LOG(ERR, EAL,
> + "Failed to allocate memory for device "
> + "event callback.");
> + ret = -ENOMEM;
> + goto error;
> + }
> + } else {
> + RTE_LOG(ERR, EAL,
> + "The callback is already exist, no need "
> + "to register again.\n");
> + ret = -EEXIST;
> + goto error;
Here is a bug that you will free an existing callback entry.
> + }
> +
> + rte_spinlock_unlock(&dev_event_lock);
> + return 0;
> +error:
> + free(event_cb);
> + rte_spinlock_unlock(&dev_event_lock);
> + return ret;
> +}
> +
> +int __rte_experimental
> +rte_dev_event_callback_unregister(const char *device_name,
> + rte_dev_event_cb_fn cb_fn,
> + void *cb_arg)
> +{
Let's clearly define the behavior and return of this API. If I understand it correctly,
If cb_arg != -1, we use (dev_name, cb_fn, cb_arg) as the key to look up the registered API.
If cb_arg == -1, we use (cb_fn) as the key to look up the registered API.
For return value, we want to return the number of callbacks being removed. It could be:
>=0, number of callbacks been removed. (When we encounter an active callback, we shall skip it or just return -EAGAIN, neither sounds good to me actually)
<0, error encountered.
If you agree with above statement, below implementation has lots of issues.
> + int ret = 0;
> + struct dev_event_callback *event_cb, *next;
> +
> + if (!cb_fn)
> + return -EINVAL;
> +
> + rte_spinlock_lock(&dev_event_lock);
> +
> + /*walk through the callbacks and remove all that match. */
> + for (event_cb = TAILQ_FIRST(&dev_event_cbs); event_cb != NULL;
> + event_cb = next) {
> +
> + next = TAILQ_NEXT(event_cb, next);
First of all, if cb_fn != event_cb->cb_fn, we shall continue.
> +
> + if (device_name != NULL && event_cb->dev_name != NULL) {
> + if (!strcmp(event_cb->dev_name, device_name)) {
> + if (event_cb->cb_fn != cb_fn ||
> + (cb_arg != (void *)-1 &&
> + event_cb->cb_arg != cb_arg))
> + continue;
> + }
> + } else if (device_name != NULL) {
> + continue;
> + }
What about device_name == NULL && event_cb->dev_name != NULL && cb_arg == -1?
What about device_name == NULL && event_cb->dev_name == NULL && cb_arg != -1 && cb_arg != event_cb->cb_arg?
> +
> + /*
> + * if this callback is not executing right now,
> + * then remove it.
> + */
> + if (event_cb->active == 0) {
> + TAILQ_REMOVE(&dev_event_cbs, event_cb, next);
> + free(event_cb);
> + ret++;
> + } else {
> + ret = -EAGAIN;
If you don't break here, next time you find another satisfied callback, you will ret++ on a (-EAGAIN) value.
> + }
> + }
> + rte_spinlock_unlock(&dev_event_lock);
> + return ret;
> +}
BTW, don't know why DPDK has the tradition of using cb_arg==-1 to stand for multiple callbacks, it's not a good API design to me. Would like as others' opinions, shall we continue this?
> +
> +void
> +dev_callback_process(char *device_name, enum rte_dev_event_type
> event)
> +{
> + struct dev_event_callback *cb_lst;
> + int rc;
> +
> + if (device_name == NULL)
> + return;
> +
> + rte_spinlock_lock(&dev_event_lock);
> +
> + TAILQ_FOREACH(cb_lst, &dev_event_cbs, next) {
> + if (cb_lst->dev_name) {
> + if (strcmp(cb_lst->dev_name, device_name))
> + continue;
> + }
> + cb_lst->active = 1;
> + rte_spinlock_unlock(&dev_event_lock);
> + rc = cb_lst->cb_fn(device_name, event,
> + cb_lst->cb_arg);
> + if (rc) {
> + RTE_LOG(ERR, EAL,
> + "Failed to process callback function.");
> + }
I don't see a reason why we need the return value from callbacks. Probably, define it as void type.
> + rte_spinlock_lock(&dev_event_lock);
> + cb_lst->active = 0;
> + }
> + rte_spinlock_unlock(&dev_event_lock);
> +}
> diff --git a/lib/librte_eal/common/eal_private.h
> b/lib/librte_eal/common/eal_private.h
> index 0b28770..88e5a59 100644
> --- a/lib/librte_eal/common/eal_private.h
> +++ b/lib/librte_eal/common/eal_private.h
> @@ -9,6 +9,8 @@
> #include <stdint.h>
> #include <stdio.h>
>
> +#include <rte_dev.h>
> +
> /**
> * Initialize the memzone subsystem (private to eal).
> *
> @@ -205,4 +207,17 @@ struct rte_bus
> *rte_bus_find_by_device_name(const char *str);
>
> int rte_mp_channel_init(void);
>
> +/**
> + * Internal Executes all the user application registered callbacks for
> + * the specific device. It is for DPDK internal user only. User
> + * application should not call it directly.
> + *
> + * @param device_name
> + * The device name.
> + * @param event
> + * the device event type.
> + *
> + */
> +void
> +dev_callback_process(char *device_name, enum rte_dev_event_type event);
Too many *_process functions in this patch. Let's avoid using such ambiguous words.
For example, you can rename this function to dev_event_callback_invoke().
> #endif /* _EAL_PRIVATE_H_ */
> diff --git a/lib/librte_eal/common/include/rte_dev.h
> b/lib/librte_eal/common/include/rte_dev.h
> index b688f1e..4c78938 100644
> --- a/lib/librte_eal/common/include/rte_dev.h
> +++ b/lib/librte_eal/common/include/rte_dev.h
> @@ -24,6 +24,25 @@ extern "C" {
> #include <rte_compat.h>
> #include <rte_log.h>
>
> +/**
> + * The device event type.
> + */
> +enum rte_dev_event_type {
> + RTE_DEV_EVENT_ADD, /**< device being added */
> + RTE_DEV_EVENT_REMOVE, /**< device being removed */
> + RTE_DEV_EVENT_MAX /**< max value of this enum */
> +};
> +
> +struct rte_dev_event {
> + enum rte_dev_event_type type; /**< device event type */
> + int subsystem; /**< subsystem id */
> + char *devname; /**< device name */
> +};
> +
> +typedef int (*rte_dev_event_cb_fn)(char *device_name,
> + enum rte_dev_event_type event,
> + void *cb_arg);
> +
> __attribute__((format(printf, 2, 0)))
> static inline void
> rte_pmd_debug_trace(const char *func_name, const char *fmt, ...)
> @@ -267,4 +286,79 @@ __attribute__((used)) = str
> }
> #endif
>
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * It registers the callback for the specific device.
> + * Multiple callbacks cal be registered at the same time.
> + *
> + * @param device_name
> + * The device name, that is the param name of the struct rte_device,
> + * null value means for all devices.
> + * @param cb_fn
> + * callback address.
> + * @param cb_arg
> + * address of parameter for callback.
> + *
> + * @return
> + * - On success, zero.
> + * - On failure, a negative value.
> + */
> +int __rte_experimental
> +rte_dev_event_callback_register(const char *device_name,
> + rte_dev_event_cb_fn cb_fn,
> + void *cb_arg);
> +
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * It unregisters the callback according to the specified device.
> + *
> + * @param device_name
> + * The device name, that is the param name of the struct rte_device,
> + * null value means for all devices.
> + * @param cb_fn
> + * callback address.
> + * @param cb_arg
> + * address of parameter for callback, (void *)-1 means to remove all
> + * registered which has the same callback address.
> + *
> + * @return
> + * - On success, return the number of callback entities removed.
> + * - On failure, a negative value.
> + */
> +int __rte_experimental
> +rte_dev_event_callback_unregister(const char *device_name,
> + rte_dev_event_cb_fn cb_fn,
> + void *cb_arg);
> +
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * Start the device event monitoring.
> + *
> + * @param none
> + * @return
> + * - On success, zero.
> + * - On failure, a negative value.
> + */
> +int __rte_experimental
> +rte_dev_event_monitor_start(void);
> +
> +/**
> + * @warning
> + * @b EXPERIMENTAL: this API may change without prior notice
> + *
> + * Stop the device event monitoring .
> + *
> + * @param none
> + * @return
> + * - On success, zero.
> + * - On failure, a negative value.
> + */
> +int __rte_experimental
> +rte_dev_event_monitor_stop(void);
> #endif /* _RTE_DEV_H_ */
> diff --git a/lib/librte_eal/linuxapp/eal/Makefile
> b/lib/librte_eal/linuxapp/eal/Makefile
> index 7e5bbe8..8578796 100644
> --- a/lib/librte_eal/linuxapp/eal/Makefile
> +++ b/lib/librte_eal/linuxapp/eal/Makefile
> @@ -41,6 +41,7 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) +=
> eal_lcore.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_timer.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_interrupts.c
> SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_alarm.c
> +SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_dev.c
>
> # from common dir
> SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_common_lcore.c
> diff --git a/lib/librte_eal/linuxapp/eal/eal_dev.c
> b/lib/librte_eal/linuxapp/eal/eal_dev.c
> new file mode 100644
> index 0000000..9c8d1a0
> --- /dev/null
> +++ b/lib/librte_eal/linuxapp/eal/eal_dev.c
> @@ -0,0 +1,22 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2018 Intel Corporation
> + */
> +
> +#include <rte_log.h>
> +#include <rte_compat.h>
> +#include <rte_dev.h>
> +
> +
> +int __rte_experimental
> +rte_dev_event_monitor_start(void)
> +{
> + /* TODO: start uevent monitor for linux */
> + return 0;
> +}
> +
> +int __rte_experimental
> +rte_dev_event_monitor_stop(void)
> +{
> + /* TODO: stop uevent monitor for linux */
> + return 0;
> +}
> diff --git a/lib/librte_eal/linuxapp/eal/meson.build
> b/lib/librte_eal/linuxapp/eal/meson.build
> index 03974ff..b222571 100644
> --- a/lib/librte_eal/linuxapp/eal/meson.build
> +++ b/lib/librte_eal/linuxapp/eal/meson.build
> @@ -18,6 +18,7 @@ env_sources = files('eal_alarm.c',
> 'eal_vfio_mp_sync.c',
> 'eal.c',
> 'eal_memory.c',
> + 'eal_dev.c',
> )
>
> if has_libnuma == 1
> diff --git a/lib/librte_eal/rte_eal_version.map
> b/lib/librte_eal/rte_eal_version.map
> index d123602..d23f491 100644
> --- a/lib/librte_eal/rte_eal_version.map
> +++ b/lib/librte_eal/rte_eal_version.map
> @@ -256,3 +256,11 @@ EXPERIMENTAL {
> rte_service_start_with_defaults;
>
> } DPDK_18.02;
> +
> +EXPERIMENTAL {
> + global:
> +
> + rte_dev_event_callback_register;
> + rte_dev_event_callback_unregister;
> +
> +} DPDK_18.05;
> --
> 2.7.4
next prev parent reply other threads:[~2018-04-04 2:54 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 [this message]
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 ` [dpdk-dev] [PATCH V9 4/5] pci_uio: add uevent hotplug failure handler in pci Jeff Guo
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=ED26CBA2FAD1BF48A8719AEF02201E36514C80E7@SHSMSX103.ccr.corp.intel.com \
--to=jianfeng.tan@intel.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=gaetan.rivet@6wind.com \
--cc=harry.van.haaren@intel.com \
--cc=helin.zhang@intel.com \
--cc=jblunck@infradead.org \
--cc=jia.guo@intel.com \
--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).