DPDK patches and discussions
 help / color / mirror / Atom feed
From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
To: jerin.jacob@caviumnetworks.com,
	santosh.shukla@caviumnetworks.com, harry.van.haaren@intel.com,
	gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com,
	liang.j.ma@intel.com
Cc: dev@dpdk.org, Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Subject: [dpdk-dev] [PATCH v7 10/15] app/eventdev: add pipeline queue worker functions
Date: Tue, 16 Jan 2018 23:16:02 +0530	[thread overview]
Message-ID: <20180116174607.10821-10-pbhagavatula@caviumnetworks.com> (raw)
In-Reply-To: <20180116174607.10821-1-pbhagavatula@caviumnetworks.com>

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
---
 app/test-eventdev/test_pipeline_common.h |  80 +++++++++
 app/test-eventdev/test_pipeline_queue.c  | 288 ++++++++++++++++++++++++++++++-
 2 files changed, 367 insertions(+), 1 deletion(-)

diff --git a/app/test-eventdev/test_pipeline_common.h b/app/test-eventdev/test_pipeline_common.h
index db2517baf..5fb91607d 100644
--- a/app/test-eventdev/test_pipeline_common.h
+++ b/app/test-eventdev/test_pipeline_common.h
@@ -63,6 +63,86 @@ struct test_pipeline {
 	uint8_t sched_type_list[EVT_MAX_STAGES] __rte_cache_aligned;
 } __rte_cache_aligned;
 
+#define BURST_SIZE 16
+
+#define PIPELINE_WROKER_SINGLE_STAGE_INIT \
+	struct worker_data *w  = arg;     \
+	struct test_pipeline *t = w->t;   \
+	const uint8_t dev = w->dev_id;    \
+	const uint8_t port = w->port_id;  \
+	struct rte_event ev
+
+#define PIPELINE_WROKER_SINGLE_STAGE_BURST_INIT \
+	int i;                                  \
+	struct worker_data *w  = arg;           \
+	struct test_pipeline *t = w->t;         \
+	const uint8_t dev = w->dev_id;          \
+	const uint8_t port = w->port_id;        \
+	struct rte_event ev[BURST_SIZE + 1]
+
+#define PIPELINE_WROKER_MULTI_STAGE_INIT                         \
+	struct worker_data *w  = arg;                            \
+	struct test_pipeline *t = w->t;                          \
+	uint8_t cq_id;                                           \
+	const uint8_t dev = w->dev_id;                           \
+	const uint8_t port = w->port_id;                         \
+	const uint8_t last_queue = t->opt->nb_stages - 1;        \
+	uint8_t *const sched_type_list = &t->sched_type_list[0]; \
+	struct rte_event ev
+
+#define PIPELINE_WROKER_MULTI_STAGE_BURST_INIT                   \
+	int i;                                  \
+	struct worker_data *w  = arg;                            \
+	struct test_pipeline *t = w->t;                          \
+	uint8_t cq_id;                                           \
+	const uint8_t dev = w->dev_id;                           \
+	const uint8_t port = w->port_id;                         \
+	const uint8_t last_queue = t->opt->nb_stages - 1;        \
+	uint8_t *const sched_type_list = &t->sched_type_list[0]; \
+	struct rte_event ev[BURST_SIZE + 1]
+
+static __rte_always_inline void
+pipeline_fwd_event(struct rte_event *ev, uint8_t sched)
+{
+	ev->event_type = RTE_EVENT_TYPE_CPU;
+	ev->op = RTE_EVENT_OP_FORWARD;
+	ev->sched_type = sched;
+}
+
+static __rte_always_inline void
+pipeline_event_enqueue(const uint8_t dev, const uint8_t port,
+		struct rte_event *ev)
+{
+	while (rte_event_enqueue_burst(dev, port, ev, 1) != 1)
+		rte_pause();
+}
+
+static __rte_always_inline void
+pipeline_event_enqueue_burst(const uint8_t dev, const uint8_t port,
+		struct rte_event *ev, const uint16_t nb_rx)
+{
+	uint16_t enq;
+
+	enq = rte_event_enqueue_burst(dev, port, ev, nb_rx);
+	while (enq < nb_rx) {
+		enq += rte_event_enqueue_burst(dev, port,
+						ev + enq, nb_rx - enq);
+	}
+}
+
+static __rte_always_inline void
+pipeline_tx_pkt(struct rte_mbuf *mbuf)
+{
+	while (rte_eth_tx_burst(mbuf->port, 0, &mbuf, 1) != 1)
+		rte_pause();
+}
+
+static inline int
+pipeline_nb_event_ports(struct evt_options *opt)
+{
+	return evt_nr_active_lcores(opt->wlcores);
+}
+
 int pipeline_test_result(struct evt_test *test, struct evt_options *opt);
 int pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues);
 int pipeline_test_setup(struct evt_test *test, struct evt_options *opt);
diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-eventdev/test_pipeline_queue.c
index 773c3ecaa..835fe0782 100644
--- a/app/test-eventdev/test_pipeline_queue.c
+++ b/app/test-eventdev/test_pipeline_queue.c
@@ -15,10 +15,296 @@ pipeline_queue_nb_event_queues(struct evt_options *opt)
 	return (eth_count * opt->nb_stages) + eth_count;
 }
 
+static int
+pipeline_queue_worker_single_stage_tx(void *arg)
+{
+	PIPELINE_WROKER_SINGLE_STAGE_INIT;
+
+	while (t->done == false) {
+		uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
+
+		if (!event) {
+			rte_pause();
+			continue;
+		}
+
+		if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) {
+			pipeline_tx_pkt(ev.mbuf);
+			w->processed_pkts++;
+		} else {
+			ev.queue_id++;
+			pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
+			pipeline_event_enqueue(dev, port, &ev);
+		}
+	}
+
+	return 0;
+}
+
+static int
+pipeline_queue_worker_single_stage_fwd(void *arg)
+{
+	PIPELINE_WROKER_SINGLE_STAGE_INIT;
+	const uint8_t tx_queue = t->tx_service.queue_id;
+
+	while (t->done == false) {
+		uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
+
+		if (!event) {
+			rte_pause();
+			continue;
+		}
+
+		ev.queue_id = tx_queue;
+		pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
+		pipeline_event_enqueue(dev, port, &ev);
+		w->processed_pkts++;
+	}
+
+	return 0;
+}
+
+static int
+pipeline_queue_worker_single_stage_burst_tx(void *arg)
+{
+	PIPELINE_WROKER_SINGLE_STAGE_BURST_INIT;
+
+	while (t->done == false) {
+		uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
+				BURST_SIZE, 0);
+
+		if (!nb_rx) {
+			rte_pause();
+			continue;
+		}
+
+		for (i = 0; i < nb_rx; i++) {
+			rte_prefetch0(ev[i + 1].mbuf);
+			if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) {
+
+				pipeline_tx_pkt(ev[i].mbuf);
+				ev[i].op = RTE_EVENT_OP_RELEASE;
+				w->processed_pkts++;
+			} else {
+				ev[i].queue_id++;
+				pipeline_fwd_event(&ev[i],
+						RTE_SCHED_TYPE_ATOMIC);
+			}
+		}
+
+		pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
+	}
+
+	return 0;
+}
+
+static int
+pipeline_queue_worker_single_stage_burst_fwd(void *arg)
+{
+	PIPELINE_WROKER_SINGLE_STAGE_BURST_INIT;
+	const uint8_t tx_queue = t->tx_service.queue_id;
+
+	while (t->done == false) {
+		uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
+				BURST_SIZE, 0);
+
+		if (!nb_rx) {
+			rte_pause();
+			continue;
+		}
+
+		for (i = 0; i < nb_rx; i++) {
+			rte_prefetch0(ev[i + 1].mbuf);
+			ev[i].queue_id = tx_queue;
+			pipeline_fwd_event(&ev[i], RTE_SCHED_TYPE_ATOMIC);
+			w->processed_pkts++;
+		}
+
+		pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
+	}
+
+	return 0;
+}
+
+
+static int
+pipeline_queue_worker_multi_stage_tx(void *arg)
+{
+	PIPELINE_WROKER_MULTI_STAGE_INIT;
+	const uint8_t nb_stages = t->opt->nb_stages + 1;
+
+	while (t->done == false) {
+		uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
+
+		if (!event) {
+			rte_pause();
+			continue;
+		}
+
+		cq_id = ev.queue_id % nb_stages;
+
+		if (cq_id >= last_queue) {
+			if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) {
+
+				pipeline_tx_pkt(ev.mbuf);
+				w->processed_pkts++;
+				continue;
+			}
+			ev.queue_id += (cq_id == last_queue) ? 1 : 0;
+			pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
+		} else {
+			ev.queue_id++;
+			pipeline_fwd_event(&ev, sched_type_list[cq_id]);
+		}
+
+		pipeline_event_enqueue(dev, port, &ev);
+	}
+	return 0;
+}
+
+static int
+pipeline_queue_worker_multi_stage_fwd(void *arg)
+{
+	PIPELINE_WROKER_MULTI_STAGE_INIT;
+	const uint8_t nb_stages = t->opt->nb_stages + 1;
+	const uint8_t tx_queue = t->tx_service.queue_id;
+
+	while (t->done == false) {
+		uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0);
+
+		if (!event) {
+			rte_pause();
+			continue;
+		}
+
+		cq_id = ev.queue_id % nb_stages;
+
+		if (cq_id == last_queue) {
+			ev.queue_id = tx_queue;
+			pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC);
+			w->processed_pkts++;
+		} else {
+			ev.queue_id++;
+			pipeline_fwd_event(&ev, sched_type_list[cq_id]);
+		}
+
+		pipeline_event_enqueue(dev, port, &ev);
+	}
+	return 0;
+}
+
+static int
+pipeline_queue_worker_multi_stage_burst_tx(void *arg)
+{
+	PIPELINE_WROKER_MULTI_STAGE_BURST_INIT;
+	const uint8_t nb_stages = t->opt->nb_stages + 1;
+
+	while (t->done == false) {
+		uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
+				BURST_SIZE, 0);
+
+		if (!nb_rx) {
+			rte_pause();
+			continue;
+		}
+
+		for (i = 0; i < nb_rx; i++) {
+			rte_prefetch0(ev[i + 1].mbuf);
+			cq_id = ev[i].queue_id % nb_stages;
+
+			if (cq_id >= last_queue) {
+				if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) {
+
+					pipeline_tx_pkt(ev[i].mbuf);
+					ev[i].op = RTE_EVENT_OP_RELEASE;
+					w->processed_pkts++;
+					continue;
+				}
+
+				ev[i].queue_id += (cq_id == last_queue) ? 1 : 0;
+				pipeline_fwd_event(&ev[i],
+						RTE_SCHED_TYPE_ATOMIC);
+			} else {
+				ev[i].queue_id++;
+				pipeline_fwd_event(&ev[i],
+						sched_type_list[cq_id]);
+			}
+
+		}
+
+		pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
+	}
+	return 0;
+}
+
+static int
+pipeline_queue_worker_multi_stage_burst_fwd(void *arg)
+{
+	PIPELINE_WROKER_MULTI_STAGE_BURST_INIT;
+	const uint8_t nb_stages = t->opt->nb_stages + 1;
+	const uint8_t tx_queue = t->tx_service.queue_id;
+
+	while (t->done == false) {
+		uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev,
+				BURST_SIZE, 0);
+
+		if (!nb_rx) {
+			rte_pause();
+			continue;
+		}
+
+		for (i = 0; i < nb_rx; i++) {
+			rte_prefetch0(ev[i + 1].mbuf);
+			cq_id = ev[i].queue_id % nb_stages;
+
+			if (cq_id == last_queue) {
+				ev[i].queue_id = tx_queue;
+				pipeline_fwd_event(&ev[i],
+						RTE_SCHED_TYPE_ATOMIC);
+				w->processed_pkts++;
+			} else {
+				ev[i].queue_id++;
+				pipeline_fwd_event(&ev[i],
+						sched_type_list[cq_id]);
+			}
+		}
+
+		pipeline_event_enqueue_burst(dev, port, ev, nb_rx);
+	}
+	return 0;
+}
+
 static int
 worker_wrapper(void *arg)
 {
-	RTE_SET_USED(arg);
+	struct worker_data *w  = arg;
+	struct evt_options *opt = w->t->opt;
+	const bool burst = evt_has_burst_mode(w->dev_id);
+	const bool mt_safe = !w->t->mt_unsafe;
+	const uint8_t nb_stages = opt->nb_stages;
+	RTE_SET_USED(opt);
+
+	if (nb_stages == 1) {
+		if (!burst && mt_safe)
+			return pipeline_queue_worker_single_stage_tx(arg);
+		else if (!burst && !mt_safe)
+			return pipeline_queue_worker_single_stage_fwd(arg);
+		else if (burst && mt_safe)
+			return pipeline_queue_worker_single_stage_burst_tx(arg);
+		else if (burst && !mt_safe)
+			return pipeline_queue_worker_single_stage_burst_fwd(
+					arg);
+	} else {
+		if (!burst && mt_safe)
+			return pipeline_queue_worker_multi_stage_tx(arg);
+		else if (!burst && !mt_safe)
+			return pipeline_queue_worker_multi_stage_fwd(arg);
+		else if (burst && mt_safe)
+			return pipeline_queue_worker_multi_stage_burst_tx(arg);
+		else if (burst && !mt_safe)
+			return pipeline_queue_worker_multi_stage_burst_fwd(arg);
+
+	}
 	rte_panic("invalid worker\n");
 }
 
-- 
2.14.1

  parent reply	other threads:[~2018-01-16 17:48 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-30  7:24 [dpdk-dev] [PATCH 1/4] app/eventdev: modify ethdev setup to support Tx Pavan Nikhilesh
2017-11-30  7:24 ` [dpdk-dev] [PATCH 2/4] app/eventdev: add packet distribution logs Pavan Nikhilesh
2017-12-10 12:31   ` Jerin Jacob
2017-11-30  7:24 ` [dpdk-dev] [PATCH 3/4] app/eventdev: add perf pipeline test Pavan Nikhilesh
2017-11-30 17:15   ` Eads, Gage
2017-12-01  5:19     ` Pavan Nikhilesh Bhagavatula
2017-12-10 12:33   ` Jerin Jacob
2017-12-11 15:20     ` Pavan Nikhilesh Bhagavatula
2017-12-11 15:45       ` Jerin Jacob
2017-11-30  7:24 ` [dpdk-dev] [PATCH 4/4] doc: add perf pipeline test in eventdev test guide Pavan Nikhilesh
2017-12-18 21:43 ` [dpdk-dev] [PATCH v2 01/12] app/eventdev: add packet distribution logs Pavan Nikhilesh
2017-12-18 21:43   ` [dpdk-dev] [PATCH v2 02/12] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-08 14:04     ` Jerin Jacob
2017-12-18 21:43   ` [dpdk-dev] [PATCH v2 03/12] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-08 14:06     ` Jerin Jacob
2017-12-18 21:43   ` [dpdk-dev] [PATCH v2 04/12] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2017-12-18 21:43   ` [dpdk-dev] [PATCH v2 05/12] app/eventdev: add perf ethport setup and destroy Pavan Nikhilesh
2018-01-08 14:10     ` Jerin Jacob
2017-12-18 21:43   ` [dpdk-dev] [PATCH v2 06/12] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 07/12] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 08/12] app/eventdev: add pipeline queue test Pavan Nikhilesh
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 09/12] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 10/12] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-08 14:15     ` Jerin Jacob
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 11/12] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2017-12-18 21:44   ` [dpdk-dev] [PATCH v2 12/12] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-10 14:51 ` [dpdk-dev] [PATCH v3 01/12] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 02/12] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 03/12] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 04/12] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 05/12] app/eventdev: add perf ethport setup and destroy Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 06/12] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 07/12] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 08/12] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-10 16:38     ` Van Haaren, Harry
2018-01-10 20:01       ` Pavan Nikhilesh
2018-01-15 10:17         ` Van Haaren, Harry
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 09/12] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-10 16:45     ` Van Haaren, Harry
2018-01-10 16:53       ` Van Haaren, Harry
2018-01-10 20:17         ` Pavan Nikhilesh
2018-01-11 12:17           ` Van Haaren, Harry
2018-01-11 13:52             ` Pavan Nikhilesh
2018-01-11 15:47               ` Van Haaren, Harry
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 10/12] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 11/12] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-10 14:51   ` [dpdk-dev] [PATCH v3 12/12] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-12 16:44 ` [dpdk-dev] [PATCH v4 01/13] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 02/13] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 03/13] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 04/13] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 11:54     ` Van Haaren, Harry
2018-01-17 17:19       ` Jerin Jacob
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 05/13] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 11:54     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 06/13] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 11:54     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 07/13] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 11:57     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 08/13] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 11:57     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 09/13] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 11:58     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 10/13] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 12:05     ` Van Haaren, Harry
2018-01-16 12:31       ` Pavan Nikhilesh
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 11/13] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 12:06     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 12/13] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 12:06     ` Van Haaren, Harry
2018-01-12 16:44   ` [dpdk-dev] [PATCH v4 13/13] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-15 11:16     ` Kovacevic, Marko
2018-01-15 16:16     ` Jerin Jacob
2018-01-16 15:17 ` [dpdk-dev] [PATCH v5 01/14] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 02/14] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 03/14] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 04/14] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 05/14] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 06/14] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 07/14] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 08/14] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 09/14] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 10/14] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 11/14] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 12/14] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 15:17   ` [dpdk-dev] [PATCH v5 13/14] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-16 15:20 ` [dpdk-dev] [PATCH v5 14/14] doc: update 18.02 release notes Pavan Nikhilesh
2018-01-16 15:39 ` [dpdk-dev] [PATCH v6 01/14] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 02/14] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 03/14] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 04/14] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 05/14] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 06/14] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 07/14] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 08/14] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 09/14] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 15:39   ` [dpdk-dev] [PATCH v6 10/14] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 15:40   ` [dpdk-dev] [PATCH v6 11/14] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 15:40   ` [dpdk-dev] [PATCH v6 12/14] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 15:40   ` [dpdk-dev] [PATCH v6 13/14] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-16 15:40   ` [dpdk-dev] [PATCH v6 14/14] doc: update 18.02 release notes Pavan Nikhilesh
2018-01-16 16:04     ` Mcnamara, John
2018-01-16 17:51       ` Pavan Nikhilesh
2018-01-16 17:45 ` [dpdk-dev] [PATCH v7 01/15] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 02/15] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 03/15] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 04/15] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 05/15] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 06/15] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 17:45   ` [dpdk-dev] [PATCH v7 07/15] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 08/15] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 09/15] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 17:46   ` Pavan Nikhilesh [this message]
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 11/15] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 12/15] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 13/15] doc: add pipeline queue test in eventdev test guide Pavan Nikhilesh
     [not found]     ` <CY4PR07MB3464D865D1B9CA42596A242380E90@CY4PR07MB3464.namprd07.prod.outlook.com>
2018-01-17 17:12       ` Mcnamara, John
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 14/15] doc: add pipeline atq " Pavan Nikhilesh
     [not found]     ` <CY4PR07MB346409AFA54FC1836195EA0A80E90@CY4PR07MB3464.namprd07.prod.outlook.com>
2018-01-17 17:12       ` Mcnamara, John
2018-01-16 17:46   ` [dpdk-dev] [PATCH v7 15/15] doc: update 18.02 release notes Pavan Nikhilesh
2018-01-17  5:47     ` [dpdk-dev] Fw: " Bhagavatula, Pavan
2018-01-17 17:14       ` [dpdk-dev] " Mcnamara, John

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=20180116174607.10821-10-pbhagavatula@caviumnetworks.com \
    --to=pbhagavatula@caviumnetworks.com \
    --cc=dev@dpdk.org \
    --cc=gage.eads@intel.com \
    --cc=harry.van.haaren@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=liang.j.ma@intel.com \
    --cc=nipun.gupta@nxp.com \
    --cc=santosh.shukla@caviumnetworks.com \
    /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).