DPDK patches and discussions
 help / color / mirror / Atom feed
From: Qi Zhang <qi.z.zhang@intel.com>
To: thomas@monjalon.net, anatoly.burakov@intel.com
Cc: konstantin.ananyev@intel.com, dev@dpdk.org,
	bruce.richardson@intel.com, ferruh.yigit@intel.com,
	benjamin.h.shelton@intel.com, narender.vangati@intel.com,
	Qi Zhang <qi.z.zhang@intel.com>
Subject: [dpdk-dev] [PATCH v12 05/19] eal: enable hotplug on multi-process
Date: Wed, 11 Jul 2018 21:47:54 +0800	[thread overview]
Message-ID: <20180711134808.254054-6-qi.z.zhang@intel.com> (raw)
In-Reply-To: <20180711134808.254054-1-qi.z.zhang@intel.com>

We are going to introduce the solution to handle hotplug in
multi-process, it includes the below scenario:

1. Attach a device from the primary
2. Detach a device from the primary
3. Attach a device from a secondary
4. Detach a device from a secondary

In the primary-secondary process model, we assume devices are shared
by default. that means attaches or detaches a device on any process
will broadcast to all other processes through mp channel then device
information will be synchronized on all processes.

Any failure during attaching/detaching process will cause inconsistent
status between processes, so proper rollback action should be considered.

This patch covers the implementation of case 1,2.
Case 3,4 will be implemented on a separate patch.

IPC scenario for Case 1, 2:

attach a device
a) primary attach the new device if failed goto h).
b) primary send attach sync request to all secondary.
c) secondary receive request and attach the device and send a reply.
d) primary check the reply if all success goes to i).
e) primary send attach rollback sync request to all secondary.
f) secondary receive the request and detach the device and send a reply.
g) primary receive the reply and detach device as rollback action.
h) attach fail
i) attach success

detach a device
a) primary send detach sync request to all secondary
b) secondary detach the device and send reply
c) primary check the reply if all success goes to f).
d) primary send detach rollback sync request to all secondary.
e) secondary receive the request and attach back device. goto g)
f) primary detach the device if success goto g), else goto d)
g) detach fail.
h) detach success.

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 lib/librte_eal/bsdapp/eal/Makefile      |   1 +
 lib/librte_eal/common/eal_common_dev.c  | 177 ++++++++++++++++++++++++++++++-
 lib/librte_eal/common/eal_private.h     |  37 +++++++
 lib/librte_eal/common/hotplug_mp.c      | 181 ++++++++++++++++++++++++++++++++
 lib/librte_eal/common/hotplug_mp.h      |  48 +++++++++
 lib/librte_eal/common/include/rte_dev.h |   6 ++
 lib/librte_eal/common/meson.build       |   1 +
 lib/librte_eal/linuxapp/eal/Makefile    |   1 +
 lib/librte_eal/linuxapp/eal/eal.c       |   6 ++
 9 files changed, 453 insertions(+), 5 deletions(-)
 create mode 100644 lib/librte_eal/common/hotplug_mp.c
 create mode 100644 lib/librte_eal/common/hotplug_mp.h

diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile
index 3fd33f1e4..4ecc73b42 100644
--- a/lib/librte_eal/bsdapp/eal/Makefile
+++ b/lib/librte_eal/bsdapp/eal/Makefile
@@ -59,6 +59,7 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_common_thread.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_common_proc.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += eal_common_fbarray.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += rte_malloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += hotplug_mp.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += malloc_elem.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += malloc_heap.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_BSDAPP) += malloc_mp.c
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index 14c5f05fa..ad5705b45 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -16,8 +16,10 @@
 #include <rte_log.h>
 #include <rte_spinlock.h>
 #include <rte_malloc.h>
+#include <rte_string_fns.h>
 
 #include "eal_private.h"
+#include "hotplug_mp.h"
 
 /**
  * The device event callback description.
@@ -102,8 +104,9 @@ int rte_eal_dev_detach(struct rte_device *dev)
 	return ret;
 }
 
-int __rte_experimental rte_eal_hotplug_add(const char *busname, const char *devname,
-			const char *devargs)
+int
+do_dev_hotplug_add(const char *busname, const char *devname,
+		const char *devargs)
 {
 	struct rte_bus *bus;
 	struct rte_device *dev;
@@ -168,8 +171,7 @@ int __rte_experimental rte_eal_hotplug_add(const char *busname, const char *devn
 	return ret;
 }
 
-int __rte_experimental
-rte_eal_hotplug_remove(const char *busname, const char *devname)
+int do_dev_hotplug_remove(const char *busname, const char *devname)
 {
 	struct rte_bus *bus;
 	struct rte_device *dev;
@@ -197,7 +199,172 @@ rte_eal_hotplug_remove(const char *busname, const char *devname)
 	if (ret)
 		RTE_LOG(ERR, EAL, "Driver cannot detach the device (%s)\n",
 			dev->name);
-	rte_devargs_remove(busname, devname);
+	else
+		rte_devargs_remove(busname, devname);
+
+	return ret;
+}
+
+int __rte_experimental
+rte_eal_hotplug_add(const char *busname, const char *devname,
+		const char *devargs)
+{
+	struct eal_dev_mp_req req;
+	int ret;
+
+	memset(&req, 0, sizeof(req));
+	req.t = EAL_DEV_REQ_TYPE_ATTACH;
+	strlcpy(req.busname, busname, EAL_DEV_MP_BUS_NAME_MAX_LEN);
+	strlcpy(req.devname, devname, EAL_DEV_MP_DEV_NAME_MAX_LEN);
+	strlcpy(req.devargs, devargs, EAL_DEV_MP_DEV_ARGS_MAX_LEN);
+
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+		/**
+		 * If in secondary process, just send IPC request to
+		 * primary process.
+		 */
+		ret = eal_dev_hotplug_request_to_primary(&req);
+		if (ret) {
+			RTE_LOG(ERR, EAL,
+				"Failed to send hotplug request to primary\n");
+			return -ENOMSG;
+		}
+		if (req.result)
+			RTE_LOG(ERR, EAL,
+				"Failed to hotplug add device\n");
+		return req.result;
+	}
+
+	/**
+	 * attach a device from primary start from here:
+	 *
+	 * a) primary attach the new device if failed goto h).
+	 * b) primary send attach sync request to all secondary.
+	 * c) secondary receive request and attach the device and send a reply.
+	 * d) primary check the reply if all success goes to i).
+	 * e) primary send attach rollback sync request to all secondary.
+	 * f) secondary receive the request and detach the device and send a
+	 *    reply.
+	 * g) primary receive the reply and detach device as rollback action.
+	 * h) attach fail
+	 * i) attach success
+	 */
+
+	/* step a) */
+	ret = do_dev_hotplug_add(busname, devname, devargs);
+	if (ret) {
+		/* step h) */
+		RTE_LOG(ERR, EAL,
+			"Failed to attach device on primary process\n");
+		return ret;
+	}
+
+	/* step b), c) */
+	ret = eal_dev_hotplug_request_to_secondary(&req);
+
+	/* step d) */
+	if (ret) {
+		RTE_LOG(ERR, EAL,
+			"Failed to send hotplug add request to secondary\n");
+		ret = -ENOMSG;
+		goto rollback;
+	}
+
+	if (req.result) {
+		RTE_LOG(ERR, EAL,
+			"Failed to attach device on secondary process\n");
+		ret = req.result;
+		goto rollback;
+	}
+
+	/* step i */
+	return 0;
+
+rollback:
+	req.t = EAL_DEV_REQ_TYPE_ATTACH_ROLLBACK;
+	/* step e), f) */
+	eal_dev_hotplug_request_to_secondary(&req);
+	/* step g) */
+	do_dev_hotplug_remove(busname, devname);
+	/* step h */
+	return ret;
+}
+
+int __rte_experimental
+rte_eal_hotplug_remove(const char *busname, const char *devname)
+{
+	struct eal_dev_mp_req req;
+	int ret;
+
+	memset(&req, 0, sizeof(req));
+	req.t = EAL_DEV_REQ_TYPE_DETACH;
+	strlcpy(req.busname, busname, EAL_DEV_MP_BUS_NAME_MAX_LEN);
+	strlcpy(req.devname, devname, EAL_DEV_MP_DEV_NAME_MAX_LEN);
+
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+		/**
+		 * If in secondary process, just send IPC request to
+		 * primary process.
+		 */
+		ret = eal_dev_hotplug_request_to_primary(&req);
+		if (ret) {
+			RTE_LOG(ERR, EAL,
+				"Failed to send hotplug request to primary\n");
+			return -ENOMSG;
+		}
+		if (req.result)
+			RTE_LOG(ERR, EAL,
+				"Failed to hotplug remove device\n");
+		return req.result;
+	}
+
+	/**
+	 * detach a device from primary start from here:
+	 *
+	 * a) primary send detach sync request to all secondary
+	 * b) secondary detach the device and send reply
+	 * c) primary check the reply if all success goes to f).
+	 * d) primary send detach rollback sync request to all secondary.
+	 * e) secondary receive the request and attach back device. goto g)
+	 * f) primary detach the device if success goto g), else goto d)
+	 * g) detach fail.
+	 * h) detach success.
+	 */
+
+	/* step a), b) */
+	ret = eal_dev_hotplug_request_to_secondary(&req);
+	/* step c) */
+	if (ret) {
+		RTE_LOG(ERR, EAL,
+			"Failed to send device detach request to secondary\n");
+		return -ENOMSG;
+	}
+
+	if (req.result) {
+		RTE_LOG(ERR, EAL,
+			"Failed to detach device on secondary process\n");
+		ret = req.result;
+		goto rollback;
+	}
+
+	/* step f) */
+	ret = do_dev_hotplug_remove(busname, devname);
+	if (ret) {
+		RTE_LOG(ERR, EAL,
+			"Failed to detach device on primary process\n");
+		goto rollback;
+	}
+	/* step h */
+	return 0;
+
+rollback:
+	req.t = EAL_DEV_REQ_TYPE_DETACH_ROLLBACK;
+	/* step d), e) */
+	if (eal_dev_hotplug_request_to_secondary(&req))
+		RTE_LOG(ERR, EAL,
+			"Failed to attach back device on secondary."
+			"Devices in secondary may not sync with primary\n");
+	/* step g) */
 	return ret;
 }
 
diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h
index bdadc4d50..1883b05d1 100644
--- a/lib/librte_eal/common/eal_private.h
+++ b/lib/librte_eal/common/eal_private.h
@@ -258,4 +258,41 @@ int rte_mp_channel_init(void);
  */
 void dev_callback_process(char *device_name, enum rte_dev_event_type event);
 
+/**
+ * Hotplug add a given device to a specific bus.
+ *
+ * @param busname
+ *   The bus name the device is added to.
+ * @param devname
+ *   The device name. Based on this device name, eal will identify a driver
+ *   capable of handling it and pass it to the driver probing function.
+ * @param devargs
+ *   Device arguments to be passed to the driver.
+ * @return
+ *   0 on success, negative on error.
+ */
+int do_dev_hotplug_add(const char *busname, const char *devname,
+			const char *devargs);
+
+/**
+ * Hotplug remove a given device from a specific bus.
+ *
+ * @param busname
+ *   The bus name the device is removed from.
+ * @param devname
+ *   The device name being removed.
+ * @return
+ *   0 on success, negative on error.
+ */
+int do_dev_hotplug_remove(const char *busname,
+			const char *devname);
+
+/**
+ * Register all mp action callbacks for hotplug.
+ *
+ * @return
+ *   0 on success, negative on error.
+ */
+int rte_dev_hotplug_mp_init(void);
+
 #endif /* _EAL_PRIVATE_H_ */
diff --git a/lib/librte_eal/common/hotplug_mp.c b/lib/librte_eal/common/hotplug_mp.c
new file mode 100644
index 000000000..d3a8a5576
--- /dev/null
+++ b/lib/librte_eal/common/hotplug_mp.c
@@ -0,0 +1,181 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018 Intel Corporation
+ */
+#include <string.h>
+
+#include <rte_eal.h>
+#include <rte_alarm.h>
+#include <rte_string_fns.h>
+
+#include "hotplug_mp.h"
+#include "eal_private.h"
+
+#define MP_TIMEOUT_S 5 /**< 5 seconds timeouts */
+
+struct mp_reply_bundle {
+	struct rte_mp_msg msg;
+	void *peer;
+};
+
+static int
+handle_secondary_request(const struct rte_mp_msg *msg, const void *peer)
+{
+	RTE_SET_USED(msg);
+	RTE_SET_USED(peer);
+	return -ENOTSUP;
+}
+
+static void __handle_primary_request(void *param)
+{
+	struct mp_reply_bundle *bundle = param;
+	struct rte_mp_msg *msg = &bundle->msg;
+	const struct eal_dev_mp_req *req =
+		(const struct eal_dev_mp_req *)msg->param;
+	struct rte_mp_msg mp_resp;
+	struct eal_dev_mp_req *resp =
+		(struct eal_dev_mp_req *)mp_resp.param;
+	int ret = 0;
+
+	memset(&mp_resp, 0, sizeof(mp_resp));
+
+	switch (req->t) {
+	case EAL_DEV_REQ_TYPE_ATTACH:
+	case EAL_DEV_REQ_TYPE_DETACH_ROLLBACK:
+		ret = do_dev_hotplug_add(req->busname, req->devname, "");
+		break;
+	case EAL_DEV_REQ_TYPE_DETACH:
+	case EAL_DEV_REQ_TYPE_ATTACH_ROLLBACK:
+		ret = do_dev_hotplug_remove(req->busname, req->devname);
+		break;
+	default:
+		ret = -EINVAL;
+	}
+
+	strlcpy(mp_resp.name, EAL_DEV_MP_ACTION_REQUEST, sizeof(mp_resp.name));
+	mp_resp.len_param = sizeof(*req);
+	memcpy(resp, req, sizeof(*resp));
+	resp->result = ret;
+	if (rte_mp_reply(&mp_resp, bundle->peer) < 0)
+		RTE_LOG(ERR, EAL, "failed to send reply to primary request\n");
+
+	free(bundle->peer);
+	free(bundle);
+}
+
+static int
+handle_primary_request(const struct rte_mp_msg *msg, const void *peer)
+{
+	struct rte_mp_msg mp_resp;
+	const struct eal_dev_mp_req *req =
+		(const struct eal_dev_mp_req *)msg->param;
+	struct eal_dev_mp_req *resp =
+		(struct eal_dev_mp_req *)mp_resp.param;
+	struct mp_reply_bundle *bundle;
+	int ret = 0;
+
+	memset(&mp_resp, 0, sizeof(mp_resp));
+	strlcpy(mp_resp.name, EAL_DEV_MP_ACTION_REQUEST, sizeof(mp_resp.name));
+	mp_resp.len_param = sizeof(*req);
+	memcpy(resp, req, sizeof(*resp));
+
+	bundle = calloc(1, sizeof(*bundle));
+	if (bundle == NULL) {
+		resp->result = -ENOMEM;
+		ret = rte_mp_reply(&mp_resp, peer);
+		if (ret) {
+			RTE_LOG(ERR, EAL, "failed to send reply to primary request\n");
+			return ret;
+		}
+	}
+
+	bundle->msg = *msg;
+	/**
+	 * We need to send reply on interrupt thread, but peer can't be
+	 * parsed directly, so this is a temporal hack, need to be fixed
+	 * when it is ready.
+	 */
+	bundle->peer = (void *)strdup(peer);
+
+	/**
+	 * We are at IPC callback thread, sync IPC is not allowed due to
+	 * dead lock, so we delegate the task to interrupt thread.
+	 */
+	ret = rte_eal_alarm_set(1, __handle_primary_request, bundle);
+	if (ret) {
+		resp->result = ret;
+		ret = rte_mp_reply(&mp_resp, peer);
+		if (ret) {
+			RTE_LOG(ERR, EAL, "failed to send reply to primary request\n");
+			return ret;
+		}
+	}
+	return 0;
+}
+
+int eal_dev_hotplug_request_to_primary(struct eal_dev_mp_req *req)
+{
+	RTE_SET_USED(req);
+	return -ENOTSUP;
+}
+
+int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req)
+{
+	struct rte_mp_msg mp_req;
+	struct rte_mp_reply mp_reply;
+	struct timespec ts = {.tv_sec = MP_TIMEOUT_S, .tv_nsec = 0};
+	int ret;
+	int i;
+
+	memset(&mp_req, 0, sizeof(mp_req));
+	memcpy(mp_req.param, req, sizeof(*req));
+	mp_req.len_param = sizeof(*req);
+	strlcpy(mp_req.name, EAL_DEV_MP_ACTION_REQUEST, sizeof(mp_req.name));
+
+	ret = rte_mp_request_sync(&mp_req, &mp_reply, &ts);
+	if (ret) {
+		RTE_LOG(ERR, EAL, "rte_mp_request_sync failed\n");
+		return ret;
+	}
+
+	if (mp_reply.nb_sent != mp_reply.nb_received) {
+		RTE_LOG(ERR, EAL, "not all secondary reply\n");
+		return -1;
+	}
+
+	req->result = 0;
+	for (i = 0; i < mp_reply.nb_received; i++) {
+		struct eal_dev_mp_req *resp =
+			(struct eal_dev_mp_req *)mp_reply.msgs[i].param;
+		if (resp->result) {
+			req->result = resp->result;
+			break;
+		}
+	}
+
+	return 0;
+}
+
+int rte_dev_hotplug_mp_init(void)
+{
+	int ret;
+
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		ret = rte_mp_action_register(EAL_DEV_MP_ACTION_REQUEST,
+					handle_secondary_request);
+		if (ret) {
+			RTE_LOG(ERR, EAL, "Couldn't register '%s' action\n",
+				EAL_DEV_MP_ACTION_REQUEST);
+			return ret;
+		}
+	} else {
+		ret = rte_mp_action_register(EAL_DEV_MP_ACTION_REQUEST,
+					handle_primary_request);
+		if (ret) {
+			RTE_LOG(ERR, EAL, "Couldn't register '%s' action\n",
+				EAL_DEV_MP_ACTION_REQUEST);
+			return ret;
+		}
+	}
+
+	return 0;
+}
diff --git a/lib/librte_eal/common/hotplug_mp.h b/lib/librte_eal/common/hotplug_mp.h
new file mode 100644
index 000000000..22efa073e
--- /dev/null
+++ b/lib/librte_eal/common/hotplug_mp.h
@@ -0,0 +1,48 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2018 Intel Corporation
+ */
+
+#ifndef _HOTPLUG_MP_H_
+#define _HOTPLUG_MP_H_
+
+#include <rte_dev.h>
+#include <rte_bus.h>
+
+#define EAL_DEV_MP_ACTION_REQUEST      "eal_dev_mp_request"
+#define EAL_DEV_MP_ACTION_RESPONSE     "eal_dev_mp_response"
+
+#define EAL_DEV_MP_DEV_NAME_MAX_LEN RTE_DEV_NAME_MAX_LEN
+#define EAL_DEV_MP_BUS_NAME_MAX_LEN 32
+#define EAL_DEV_MP_DEV_ARGS_MAX_LEN 128
+
+enum eal_dev_req_type {
+	EAL_DEV_REQ_TYPE_ATTACH,
+	EAL_DEV_REQ_TYPE_DETACH,
+	EAL_DEV_REQ_TYPE_ATTACH_ROLLBACK,
+	EAL_DEV_REQ_TYPE_DETACH_ROLLBACK,
+};
+
+struct eal_dev_mp_req {
+	enum eal_dev_req_type t;
+	char busname[EAL_DEV_MP_BUS_NAME_MAX_LEN];
+	char devname[EAL_DEV_MP_DEV_NAME_MAX_LEN];
+	char devargs[EAL_DEV_MP_DEV_ARGS_MAX_LEN];
+	int result;
+};
+
+/**
+ * this is a synchronous wrapper for secondary process send
+ * request to primary process, this is invoked when an attach
+ * or detach request issued from primary process.
+ */
+int eal_dev_hotplug_request_to_primary(struct eal_dev_mp_req *req);
+
+/**
+ * this is a synchronous wrapper for primary process send
+ * request to secondary process, this is invoked when an attach
+ * or detach request issued from secondary process.
+ */
+int eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req);
+
+
+#endif /* _HOTPLUG_MP_H_ */
diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 3879ff3ca..ab179c778 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -193,6 +193,9 @@ int rte_eal_dev_detach(struct rte_device *dev);
  * @b EXPERIMENTAL: this API may change without prior notice
  *
  * Hotplug add a given device to a specific bus.
+ * In multi-process, this function will inform all other processes
+ * to hotplug add the same device. Any failure on other process
+ * will rollback the action.
  *
  * @param busname
  *   The bus name the device is added to.
@@ -212,6 +215,9 @@ int __rte_experimental rte_eal_hotplug_add(const char *busname, const char *devn
  * @b EXPERIMENTAL: this API may change without prior notice
  *
  * Hotplug remove a given device from a specific bus.
+ * In multi-process, this function will inform all other processes
+ * to hotplug remove the same device. Any failure on other process
+ * will rollback the action.
  *
  * @param busname
  *   The bus name the device is removed from.
diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build
index 8a3dcfee0..0f2cf9a1a 100644
--- a/lib/librte_eal/common/meson.build
+++ b/lib/librte_eal/common/meson.build
@@ -25,6 +25,7 @@ common_sources = files(
 	'eal_common_tailqs.c',
 	'eal_common_thread.c',
 	'eal_common_timer.c',
+	'hotplug_mp.c',
 	'malloc_elem.c',
 	'malloc_heap.c',
 	'malloc_mp.c',
diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile
index 3719ec9d7..6c225b54a 100644
--- a/lib/librte_eal/linuxapp/eal/Makefile
+++ b/lib/librte_eal/linuxapp/eal/Makefile
@@ -67,6 +67,7 @@ SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_common_thread.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_common_proc.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += eal_common_fbarray.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += rte_malloc.c
+SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += hotplug_mp.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += malloc_elem.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += malloc_heap.c
 SRCS-$(CONFIG_RTE_EXEC_ENV_LINUXAPP) += malloc_mp.c
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index 8655b8691..0c6984990 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -850,6 +850,12 @@ rte_eal_init(int argc, char **argv)
 		}
 	}
 
+	/* register mp action callbacks for hotplug */
+	if (rte_dev_hotplug_mp_init() < 0) {
+		rte_eal_init_alert("failed to register mp callback for hotplug\n");
+		return -1;
+	}
+
 	if (rte_bus_scan()) {
 		rte_eal_init_alert("Cannot scan the buses for devices\n");
 		rte_errno = ENODEV;
-- 
2.13.6

  parent reply	other threads:[~2018-07-11 13:47 UTC|newest]

Thread overview: 488+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-07 12:38 [dpdk-dev] [PATCH 00/22] " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 01/22] eal: introduce one device scan Qi Zhang
2018-06-08 11:12   ` Shreyansh Jain
2018-06-13 13:32     ` Zhang, Qi Z
2018-06-07 12:38 ` [dpdk-dev] [PATCH 02/22] bus/vdev: enable " Qi Zhang
2018-06-08 12:08   ` Shreyansh Jain
2018-06-13 13:32     ` Zhang, Qi Z
2018-06-07 12:38 ` [dpdk-dev] [PATCH 03/22] ethdev: add function to release port in local process Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 04/22] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-15 15:44   ` Burakov, Anatoly
2018-06-18  8:18   ` Burakov, Anatoly
2018-06-19  3:22     ` Zhang, Qi Z
2018-06-19  8:37       ` Burakov, Anatoly
2018-06-07 12:38 ` [dpdk-dev] [PATCH 05/22] ethdev: introduce device lock Qi Zhang
2018-06-15 15:42   ` Burakov, Anatoly
2018-06-20  4:00     ` Zhang, Qi Z
2018-06-15 16:09   ` Stephen Hemminger
2018-06-19 14:16     ` Zhang, Qi Z
2018-06-07 12:38 ` [dpdk-dev] [PATCH 06/22] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-18  8:51   ` Burakov, Anatoly
2018-06-19  3:33     ` Zhang, Qi Z
2018-06-07 12:38 ` [dpdk-dev] [PATCH 07/22] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 08/22] net/ixgbe: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 09/22] net/e1000: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 10/22] net/igb: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 11/22] net/fm10k: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 12/22] net/af_packet: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 13/22] net/bonding: " Qi Zhang
2018-06-07 14:21   ` Chas Williams
2018-06-07 12:38 ` [dpdk-dev] [PATCH 14/22] net/failsafe: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 15/22] net/kni: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 16/22] net/null: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 17/22] net/octeontx: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 18/22] net/pcap: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 19/22] net/softnic: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 20/22] net/tap: " Qi Zhang
2018-06-07 19:01   ` Wiles, Keith
2018-06-07 12:38 ` [dpdk-dev] [PATCH 21/22] net/vhost: " Qi Zhang
2018-06-07 12:38 ` [dpdk-dev] [PATCH 22/22] examples/devmgm_mp: add simple device management sample Qi Zhang
2018-06-18 10:36   ` Burakov, Anatoly
2018-06-22  6:49     ` Zhang, Qi Z
2018-06-15 15:16 ` [dpdk-dev] [PATCH 00/22] enable hotplug on multi-process Burakov, Anatoly
2018-06-19  2:43   ` Zhang, Qi Z
2018-06-21  2:00 ` [dpdk-dev] [PATCH v2 " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 01/22] eal: introduce one device scan Qi Zhang
2018-06-21  7:56     ` Burakov, Anatoly
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 02/22] bus/vdev: enable " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 03/22] ethdev: add function to release port in local process Qi Zhang
2018-06-21  8:06     ` Burakov, Anatoly
2018-06-21  8:21       ` Thomas Monjalon
2018-06-21  8:21       ` Zhang, Qi Z
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 04/22] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-21  8:36     ` Burakov, Anatoly
2018-06-21  9:14       ` Zhang, Qi Z
2018-06-22 13:54     ` Andrew Rybchenko
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 05/22] ethdev: introduce device lock Qi Zhang
2018-06-21  8:51     ` Burakov, Anatoly
2018-06-21  9:16       ` Zhang, Qi Z
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 06/22] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-21  9:06     ` Burakov, Anatoly
2018-06-21 12:50       ` Zhang, Qi Z
2018-06-21 12:56         ` Burakov, Anatoly
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 07/22] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-22 13:57     ` Andrew Rybchenko
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 08/22] net/ixgbe: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 09/22] net/e1000: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 10/22] net/igb: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 11/22] net/fm10k: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 12/22] net/af_packet: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 13/22] net/bonding: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 14/22] net/failsafe: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 15/22] net/kni: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 16/22] net/null: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 17/22] net/octeontx: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 18/22] net/pcap: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 19/22] net/softnic: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 20/22] net/tap: " Qi Zhang
2018-06-21 12:39     ` Wiles, Keith
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 21/22] net/vhost: " Qi Zhang
2018-06-21  2:00   ` [dpdk-dev] [PATCH v2 22/22] examples/devmgm_mp: add simple device management sample Qi Zhang
2018-06-21  7:54     ` Burakov, Anatoly
2018-06-25  7:17 ` [dpdk-dev] [PATCH v3 00/22] enable hotplug on multi-process Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 01/23] eal: introduce one device scan Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 02/23] bus/vdev: enable " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 03/23] ethdev: add function to release port in local process Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 04/23] eal: enable multi process init callback Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 05/23] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 06/23] ethdev: introduce device lock Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 07/23] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 08/23] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-25 10:01     ` Andrew Rybchenko
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 09/23] net/ixgbe: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 10/23] net/e1000: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 11/23] net/igb: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 12/23] net/fm10k: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 13/23] net/af_packet: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 14/23] net/bonding: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 15/23] net/failsafe: " Qi Zhang
2018-06-27  8:28     ` Matan Azrad
2018-06-27  8:34       ` Zhang, Qi Z
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 16/23] net/kni: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 17/23] net/null: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 18/23] net/octeontx: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 19/23] net/pcap: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 20/23] net/softnic: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 21/23] net/tap: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 22/23] net/vhost: " Qi Zhang
2018-06-25  7:17   ` [dpdk-dev] [PATCH v3 23/23] examples/multi_process: add hotplug sample Qi Zhang
2018-06-26  7:08 ` [dpdk-dev] [PATCH v4 00/24] enable hotplug on multi-process Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 01/24] eal: introduce one device scan Qi Zhang
2018-06-26 10:49     ` Remy Horton
2018-06-26 11:47     ` Burakov, Anatoly
2018-06-26 12:26       ` Zhang, Qi Z
2018-06-26 16:33         ` Gaëtan Rivet
2018-06-27 12:32           ` Zhang, Qi Z
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 02/24] bus/vdev: enable " Qi Zhang
2018-06-26 10:49     ` Remy Horton
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 03/24] ethdev: add function to release port in local process Qi Zhang
2018-06-26 10:49     ` Remy Horton
2018-06-26 11:50     ` Matan Azrad
2018-06-26 13:28       ` Zhang, Qi Z
2018-06-26 13:30       ` Zhang, Qi Z
2018-06-26 16:54         ` Matan Azrad
2018-06-27  3:35           ` Zhang, Qi Z
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 04/24] eal: enable multi process init callback Qi Zhang
2018-06-26 11:53     ` Burakov, Anatoly
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 05/24] eal: support mp task be invoked in a separate task Qi Zhang
2018-06-26  9:02     ` Burakov, Anatoly
2018-06-26  9:24       ` Thomas Monjalon
2018-06-26  9:44         ` Zhang, Qi Z
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 06/24] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-26 12:09     ` Burakov, Anatoly
2018-06-26 12:19       ` Zhang, Qi Z
2018-06-26 12:49         ` Burakov, Anatoly
2018-06-26 12:58           ` Zhang, Qi Z
2018-06-26 13:20             ` Burakov, Anatoly
2018-06-26 13:25               ` Zhang, Qi Z
2018-06-26 13:45                 ` Burakov, Anatoly
2018-06-26 14:24                   ` Zhang, Qi Z
2018-06-26 15:12                     ` Burakov, Anatoly
2018-06-27  1:31                       ` Zhang, Qi Z
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 07/24] ethdev: introduce device lock Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 08/24] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 09/24] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-26 10:36     ` Remy Horton
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 10/24] net/ixgbe: " Qi Zhang
2018-06-26 10:35     ` Remy Horton
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 11/24] net/e1000: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 12/24] net/igb: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 13/24] net/fm10k: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 14/24] net/af_packet: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 15/24] net/bonding: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 16/24] net/failsafe: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 17/24] net/kni: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 18/24] net/null: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 19/24] net/octeontx: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 20/24] net/pcap: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 21/24] net/softnic: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 22/24] net/tap: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 23/24] net/vhost: " Qi Zhang
2018-06-26  7:08   ` [dpdk-dev] [PATCH v4 24/24] examples/multi_process: add hotplug sample Qi Zhang
2018-06-26 11:58     ` Burakov, Anatoly
2018-06-27  7:17 ` [dpdk-dev] [PATCH v5 00/24] enable hotplug on multi-process Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 01/24] eal: introduce one device scan Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 02/24] bus/vdev: enable " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 03/24] ethdev: add function to release port in local process Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 04/24] eal: enable multi process init callback Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 05/24] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 06/24] ethdev: introduce device lock Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 07/24] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 08/24] ethdev: support attach private device as first Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 09/24] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 10/24] net/ixgbe: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 11/24] net/e1000: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 12/24] net/igb: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 13/24] net/fm10k: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 14/24] net/af_packet: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 15/24] net/bonding: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 16/24] net/failsafe: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 17/24] net/kni: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 18/24] net/null: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 19/24] net/octeontx: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 20/24] net/pcap: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 21/24] net/softnic: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 22/24] net/tap: " Qi Zhang
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 23/24] net/vhost: " Qi Zhang
2018-06-27  8:24     ` Maxime Coquelin
2018-06-27  7:17   ` [dpdk-dev] [PATCH v5 24/24] examples/multi_process: add hotplug sample Qi Zhang
2018-06-28  1:49 ` [dpdk-dev] [PATCH v5 00/24] enable hotplug on multi-process Qi Zhang
2018-06-28  1:49   ` [dpdk-dev] [PATCH v6 01/19] ethdev: add function to release port in local process Qi Zhang
2018-06-28  1:49   ` [dpdk-dev] [PATCH v6 02/19] eal: enable multi process init callback Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 03/19] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 04/19] ethdev: introduce device lock Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 05/19] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 06/19] ethdev: support attach private device as first Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 07/19] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 08/19] net/ixgbe: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 09/19] net/af_packet: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 10/19] net/bonding: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 11/19] net/kni: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 12/19] net/null: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 13/19] net/octeontx: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 14/19] net/pcap: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 15/19] net/softnic: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 16/19] net/tap: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 17/19] net/vhost: " Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-06-28  1:50   ` [dpdk-dev] [PATCH v6 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-06-28  1:52 ` [dpdk-dev] [PATCH v6 00/19] enable hotplug on multi-process Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 01/19] ethdev: add function to release port in local process Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 02/19] eal: enable multi process init callback Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 03/19] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-28  9:11     ` Burakov, Anatoly
2018-06-28  9:19     ` Burakov, Anatoly
2018-06-28  9:21       ` Zhang, Qi Z
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 04/19] ethdev: introduce device lock Qi Zhang
2018-06-28  9:20     ` Burakov, Anatoly
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 05/19] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-28  9:23     ` Burakov, Anatoly
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 06/19] ethdev: support attach private device as first Qi Zhang
2018-06-28  9:24     ` Burakov, Anatoly
2018-06-28  9:29       ` Zhang, Qi Z
2018-06-28  9:41         ` Burakov, Anatoly
2018-06-28 11:26           ` Zhang, Qi Z
2018-06-28 11:45           ` Zhang, Qi Z
2018-06-28 12:34             ` Burakov, Anatoly
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 07/19] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 08/19] net/ixgbe: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 09/19] net/af_packet: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 10/19] net/bonding: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 11/19] net/kni: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 12/19] net/null: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 13/19] net/octeontx: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 14/19] net/pcap: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 15/19] net/softnic: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 16/19] net/tap: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 17/19] net/vhost: " Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-06-28  1:52   ` [dpdk-dev] [PATCH v6 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-06-28  9:39     ` Burakov, Anatoly
2018-06-28 12:21       ` Zhang, Qi Z
2018-06-28 12:56 ` [dpdk-dev] [PATCH v7 00/19] enable hotplug on multi-process Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 01/19] ethdev: add function to release port in local process Qi Zhang
2018-06-28 14:34     ` Andrew Rybchenko
2018-06-28 23:55       ` Zhang, Qi Z
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 02/19] eal: enable multi process init callback Qi Zhang
2018-06-28 13:09     ` Burakov, Anatoly
2018-06-28 13:47       ` Zhang, Qi Z
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 03/19] ethdev: enable hotplug on multi-process Qi Zhang
2018-06-28 16:32     ` Andrew Rybchenko
2018-06-29  0:12       ` Zhang, Qi Z
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 04/19] ethdev: introduce device lock Qi Zhang
2018-06-28 16:46     ` Andrew Rybchenko
2018-06-29  1:18       ` Zhang, Qi Z
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 05/19] ethdev: support attach or detach share device from secondary Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 06/19] ethdev: support attach private device as first Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 07/19] net/i40e: enable port detach on secondary process Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 08/19] net/ixgbe: " Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 09/19] net/af_packet: " Qi Zhang
2018-06-28 12:56   ` [dpdk-dev] [PATCH v7 10/19] net/bonding: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 11/19] net/kni: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 12/19] net/null: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 13/19] net/octeontx: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 14/19] net/pcap: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 15/19] net/softnic: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 16/19] net/tap: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 17/19] net/vhost: " Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-06-28 12:57   ` [dpdk-dev] [PATCH v7 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-02  5:44 ` [dpdk-dev] [PATCH v8 00/19] enable hotplug on multi-process Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-03  9:21     ` Thomas Monjalon
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 02/19] eal: enable multi process init callback Qi Zhang
2018-07-03  9:27     ` Thomas Monjalon
2018-07-03 15:16       ` Zhang, Qi Z
2018-07-03 21:51         ` Thomas Monjalon
2018-07-04  1:08           ` Zhang, Qi Z
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 03/19] ethdev: enable hotplug on multi-process Qi Zhang
2018-07-03  9:44     ` Thomas Monjalon
2018-07-03 12:59       ` Zhang, Qi Z
2018-07-03 14:11         ` Thomas Monjalon
2018-07-03 15:03           ` Zhang, Qi Z
2018-07-03 21:57             ` Thomas Monjalon
2018-07-03 22:35               ` Thomas Monjalon
2018-07-04  2:26                 ` Zhang, Qi Z
2018-07-04  7:33                   ` Thomas Monjalon
2018-07-04 10:57                     ` Zhang, Qi Z
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 04/19] ethdev: introduce device lock Qi Zhang
2018-07-03  9:56     ` Thomas Monjalon
2018-07-03 15:08       ` Zhang, Qi Z
2018-07-03 22:13         ` Thomas Monjalon
2018-07-04  1:47           ` Zhang, Qi Z
2018-07-04  7:27             ` Thomas Monjalon
2018-07-04 10:49               ` Zhang, Qi Z
2018-07-04 21:41                 ` Thomas Monjalon
2018-07-05  1:38                   ` Zhang, Qi Z
2018-07-05  1:55                     ` Thomas Monjalon
2018-07-05  3:37                       ` Zhang, Qi Z
2018-07-05  7:22                         ` Thomas Monjalon
2018-07-05  9:54                           ` Zhang, Qi Z
2018-07-05 10:54                             ` Thomas Monjalon
2018-07-05 12:16                               ` Zhang, Qi Z
2018-07-04  2:19     ` Yuanhan Liu
2018-07-04  3:24       ` Zhang, Qi Z
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 05/19] ethdev: support attach or detach share device from secondary Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 06/19] ethdev: support attach private device as first Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 07/19] net/i40e: enable port detach on secondary process Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 08/19] net/ixgbe: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 09/19] net/af_packet: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 10/19] net/bonding: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 11/19] net/kni: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 12/19] net/null: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 13/19] net/octeontx: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 14/19] net/pcap: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 15/19] net/softnic: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 16/19] net/tap: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 17/19] net/vhost: " Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-02  5:44   ` [dpdk-dev] [PATCH v8 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-06 14:18 ` [dpdk-dev] [PATCH v9 00/19] enable hotplug on multi-process Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 02/19] bus/pci: fix PCI address compare Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 03/19] bus/pci: enable vfio unmap resource for secondary Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 04/19] vfio: remove uneccessary IPC for group fd clear Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 05/19] eal: enable hotplug on multi-process Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 06/19] eal: support attach or detach share device from secondary Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 07/19] net/i40e: enable port detach on secondary process Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 08/19] net/ixgbe: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 09/19] net/af_packet: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 10/19] net/bonding: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 11/19] net/kni: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 12/19] net/null: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 13/19] net/octeontx: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 14/19] net/pcap: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 15/19] net/softnic: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 16/19] net/tap: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 17/19] net/vhost: " Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-06 14:18   ` [dpdk-dev] [PATCH v9 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-09  3:36 ` [dpdk-dev] [PATCH v10 00/19] enable hotplug on multi-process Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 02/19] bus/pci: fix PCI address compare Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 03/19] bus/pci: enable vfio unmap resource for secondary Qi Zhang
2018-07-09 14:37     ` Burakov, Anatoly
2018-07-10  0:30       ` Zhang, Qi Z
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 04/19] vfio: remove uneccessary IPC for group fd clear Qi Zhang
2018-07-09 15:13     ` Burakov, Anatoly
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 05/19] eal: enable hotplug on multi-process Qi Zhang
2018-07-10 14:00     ` Burakov, Anatoly
2018-07-11  1:25       ` Zhang, Qi Z
2018-07-11  2:11         ` Zhang, Qi Z
2018-07-11  8:39           ` Burakov, Anatoly
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 06/19] eal: support attach or detach share device from secondary Qi Zhang
2018-07-10 14:11     ` Burakov, Anatoly
2018-07-11  2:17       ` Zhang, Qi Z
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 07/19] net/i40e: enable hotplug on secondary process Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 08/19] net/ixgbe: " Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 09/19] net/af_packet: " Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 10/19] net/bonding: " Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 11/19] net/kni: " Qi Zhang
2018-07-09  3:36   ` [dpdk-dev] [PATCH v10 12/19] net/null: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 13/19] net/octeontx: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 14/19] net/pcap: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 15/19] net/softnic: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 16/19] net/tap: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 17/19] net/vhost: " Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-09  3:37   ` [dpdk-dev] [PATCH v10 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-11  3:08 ` [dpdk-dev] [PATCH v11 00/19] enable hotplug on multi-process Qi Zhang
2018-07-11  3:08   ` [dpdk-dev] [PATCH v11 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-11  9:26     ` Andrew Rybchenko
2018-07-11 12:30       ` Zhang, Qi Z
2018-07-11 16:05         ` Andrew Rybchenko
2018-07-12  0:23           ` Zhang, Qi Z
2018-07-12  9:49             ` Andrew Rybchenko
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 02/19] bus/pci: fix PCI address compare Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 03/19] bus/pci: enable vfio unmap resource for secondary Qi Zhang
2018-07-11  8:43     ` Burakov, Anatoly
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 04/19] vfio: remove uneccessary IPC for group fd clear Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 05/19] eal: enable hotplug on multi-process Qi Zhang
2018-07-11 12:34     ` Burakov, Anatoly
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 06/19] eal: support attach or detach share device from secondary Qi Zhang
2018-07-11 12:34     ` Burakov, Anatoly
2018-07-11 12:55       ` Zhang, Qi Z
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 07/19] net/i40e: enable hotplug on secondary process Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 08/19] net/ixgbe: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 09/19] net/af_packet: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 10/19] net/bonding: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 11/19] net/kni: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 12/19] net/null: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 13/19] net/octeontx: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 14/19] net/pcap: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 15/19] net/softnic: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 16/19] net/tap: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 17/19] net/vhost: " Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-11  3:09   ` [dpdk-dev] [PATCH v11 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-11 13:47 ` [dpdk-dev] [PATCH v12 00/19] enable hotplug on multi-process Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 02/19] bus/pci: fix PCI address compare Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 03/19] bus/pci: enable vfio unmap resource for secondary Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 04/19] vfio: remove uneccessary IPC for group fd clear Qi Zhang
2018-07-11 13:47   ` Qi Zhang [this message]
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 06/19] eal: support attach or detach share device from secondary Qi Zhang
2018-07-11 13:59     ` Burakov, Anatoly
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 07/19] net/i40e: enable hotplug on secondary process Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 08/19] net/ixgbe: " Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 09/19] net/af_packet: " Qi Zhang
2018-07-11 13:47   ` [dpdk-dev] [PATCH v12 10/19] net/bonding: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 11/19] net/kni: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 12/19] net/null: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 13/19] net/octeontx: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 14/19] net/pcap: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 15/19] net/softnic: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 16/19] net/tap: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 17/19] net/vhost: " Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-11 13:48   ` [dpdk-dev] [PATCH v12 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-12  1:14 ` [dpdk-dev] [PATCH v12 00/19] enable hotplug on multi-process Qi Zhang
2018-07-12  1:14   ` [dpdk-dev] [PATCH v13 01/19] ethdev: add function to release port in local process Qi Zhang
2018-07-12  1:14   ` [dpdk-dev] [PATCH v13 02/19] bus/pci: fix PCI address compare Qi Zhang
2018-07-12  9:24     ` Burakov, Anatoly
2018-07-12  9:32       ` Gaëtan Rivet
2018-07-12 11:57         ` Zhang, Qi Z
2018-07-12 11:53       ` Zhang, Qi Z
2018-07-12  1:14   ` [dpdk-dev] [PATCH v13 03/19] bus/pci: enable vfio unmap resource for secondary Qi Zhang
2018-07-12  1:14   ` [dpdk-dev] [PATCH v13 04/19] vfio: remove uneccessary IPC for group fd clear Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 05/19] eal: enable hotplug on multi-process Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 06/19] eal: support attach or detach share device from secondary Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 07/19] net/i40e: enable hotplug on secondary process Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 08/19] net/ixgbe: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 09/19] net/af_packet: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 10/19] net/bonding: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 11/19] net/kni: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 12/19] net/null: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 13/19] net/octeontx: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 14/19] net/pcap: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 15/19] net/softnic: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 16/19] net/tap: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 17/19] net/vhost: " Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 18/19] examples/multi_process: add hotplug sample Qi Zhang
2018-07-12  1:15   ` [dpdk-dev] [PATCH v13 19/19] doc: update release notes for multi process hotplug Qi Zhang
2018-07-12  8:30   ` [dpdk-dev] [PATCH v12 00/19] enable hotplug on multi-process Thomas Monjalon
2018-07-12  9:11     ` Zhang, Qi Z
2018-07-12  9:21       ` Thomas Monjalon
2018-07-12  1:18 ` Qi Zhang
2018-07-12  1:18 ` [dpdk-dev] [PATCH v13 " Qi Zhang
2018-08-10  0:42 ` [dpdk-dev] [PATCH v14 0/6] " Qi Zhang
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 1/6] ethdev: add function to release port in secondary process Qi Zhang
2018-08-12 11:05     ` Andrew Rybchenko
2018-08-15  0:17       ` Zhang, Qi Z
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 2/6] eal: enable hotplug on multi-process Qi Zhang
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 3/6] eal: support attach or detach share device from secondary Qi Zhang
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 4/6] drivers/net: enable hotplug on secondary process Qi Zhang
2018-08-12 10:59     ` Andrew Rybchenko
2018-08-15  1:14       ` Zhang, Qi Z
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 5/6] drivers/net: enable device detach on secondary Qi Zhang
2018-08-12 10:50     ` Andrew Rybchenko
2018-08-15  1:22       ` Zhang, Qi Z
2018-08-10  0:42   ` [dpdk-dev] [PATCH v14 6/6] examples/multi_process: add hotplug sample Qi Zhang
2018-08-16  3:04 ` [dpdk-dev] [PATCH v15 0/7] enable hotplug on multi-process Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 1/7] ethdev: add function to release port in secondary process Qi Zhang
2018-08-20  8:52     ` Andrew Rybchenko
2018-08-25  5:51       ` Zhang, Qi Z
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 2/7] eal: enable hotplug on multi-process Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 3/7] eal: support attach or detach share device from secondary Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 4/7] drivers/net: enable hotplug on secondary process Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 5/7] drivers/net: enable device detach on secondary Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 6/7] examples/multi_process: add hotplug sample Qi Zhang
2018-08-16  3:04   ` [dpdk-dev] [PATCH v15 7/7] doc: update release notes for mulit-process hotplug Qi Zhang
2018-09-28  4:23 ` [dpdk-dev] [PATCH v16 0/6] enable hotplug on multi-process Qi Zhang
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 1/6] ethdev: add function to release port in secondary process Qi Zhang
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 2/6] eal: enable hotplug on multi-process Qi Zhang
2018-10-15  8:43     ` Thomas Monjalon
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 3/6] eal: support attach or detach share device from secondary Qi Zhang
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 4/6] drivers/net: enable hotplug on secondary process Qi Zhang
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 5/6] drivers/net: enable device detach on secondary Qi Zhang
2018-09-28  4:23   ` [dpdk-dev] [PATCH v16 6/6] examples/multi_process: add hotplug sample Qi Zhang
2018-10-02 14:38   ` [dpdk-dev] [PATCH v16 0/6] enable hotplug on multi-process Raslan Darawsheh
2018-10-16  0:16 ` [dpdk-dev] [PATCH v17 " Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 1/6] ethdev: add function to release port in secondary process Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 2/6] eal: enable hotplug on multi-process Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 3/6] eal: support attach or detach share device from secondary Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 4/6] drivers/net: enable hotplug on secondary process Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 5/6] drivers/net: enable device detach on secondary Qi Zhang
2018-10-16  0:16   ` [dpdk-dev] [PATCH v17 6/6] examples/multi_process: add hotplug sample Qi Zhang
2018-10-16 10:52   ` [dpdk-dev] [PATCH v17 0/6] enable hotplug on multi-process Thomas Monjalon
2018-10-16 16:41     ` Zhang, Qi Z

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=20180711134808.254054-6-qi.z.zhang@intel.com \
    --to=qi.z.zhang@intel.com \
    --cc=anatoly.burakov@intel.com \
    --cc=benjamin.h.shelton@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=narender.vangati@intel.com \
    --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).