All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] app/eventdev: modify ethdev setup to support Tx
@ 2017-11-30  7:24 Pavan Nikhilesh
  2017-11-30  7:24 ` [PATCH 2/4] app/eventdev: add packet distribution logs Pavan Nikhilesh
                   ` (9 more replies)
  0 siblings, 10 replies; 122+ messages in thread
From: Pavan Nikhilesh @ 2017-11-30  7:24 UTC (permalink / raw)
  To: jerin.jacobkollanukkaran, gage.eads, harry.van.haaren,
	bruce.richardson, hemant.agrawal, nipun.gupta, nikhil.rao
  Cc: dev, Pavan Nikhilesh

Modify ethernet dev setup to support packet transmission and probe
through ethdev tx capabilities.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
---
 This patch set depends on : http://dpdk.org/dev/patchwork/patch/30520

 app/test-eventdev/test_perf_common.c | 56 ++++++++++++++++++++----------------
 app/test-eventdev/test_perf_common.h |  6 ++++
 2 files changed, 38 insertions(+), 24 deletions(-)

diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c
index 873eab9..60965dc 100644
--- a/app/test-eventdev/test_perf_common.c
+++ b/app/test-eventdev/test_perf_common.c
@@ -92,7 +92,7 @@ static int
 perf_producer_wrapper(void *arg)
 {
 	RTE_SET_USED(arg);
-	struct prod_data *p  = arg;
+	struct prod_data *p = arg;
 	struct test_perf *t = p->t;
 	/* Launch the producer function only in case of synthetic producer. */
 	if (t->opt->prod_type == EVT_PROD_TYPE_SYNT)
@@ -126,7 +126,6 @@ total_latency(struct test_perf *t)
 	return total;
 }

-
 int
 perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
 		int (*worker)(void *))
@@ -232,7 +231,7 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt,
 	return 0;
 }

-static int
+int
 perf_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride,
 		struct rte_event_port_conf prod_conf)
 {
@@ -494,9 +493,9 @@ perf_elt_init(struct rte_mempool *mp, void *arg __rte_unused,
 int
 perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 {
-	uint16_t nb_rx_queues = 1;
 	int i;
-	int j;
+	uint8_t nb_queues = 1;
+	uint8_t mt_state = 0;
 	struct test_perf *t = evt_test_priv(test);
 	struct rte_eth_conf port_conf = {
 		.rxmode = {
@@ -528,33 +527,42 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt)
 	}

 	for (i = 0; i < rte_eth_dev_count(); i++) {
+		struct rte_eth_dev_info dev_info;
+
+		memset(&dev_info, 0, sizeof(struct rte_eth_dev_info));
+		rte_eth_dev_info_get(i, &dev_info);
+		mt_state = !(dev_info.tx_offload_capa &
+				DEV_TX_OFFLOAD_MT_LOCKFREE);

-		if (rte_eth_dev_configure(i, nb_rx_queues, nb_rx_queues,
+		if (rte_eth_dev_configure(i, nb_queues, nb_queues,
 					&port_conf)
 				< 0) {
 			evt_err("Failed to configure eth port [%d]\n", i);
 			return -EINVAL;
 		}

-		for (j = 0; j < nb_rx_queues; j++) {
-			if (rte_eth_rx_queue_setup(i, j, NB_RX_DESC,
-					rte_socket_id(), NULL, t->pool) < 0) {
-				evt_err("Failed to setup eth port [%d]"
-						" rx_queue: %d."
-						" Using synthetic producer\n",
-						i, j);
-				return -EINVAL;
-			}
-			if (rte_eth_tx_queue_setup(i, j, NB_TX_DESC,
-						rte_socket_id(), NULL) < 0) {
-				evt_err("Failed to setup eth port [%d]"
-						" tx_queue: %d."
-						" Using synthetic producer\n",
-						i, j);
-				return -EINVAL;
-			}
+		if (rte_eth_rx_queue_setup(i, 0, NB_RX_DESC,
+				rte_socket_id(), NULL, t->pool) < 0) {
+			evt_err("Failed to setup eth port [%d]"
+					" rx_queue: %d."
+					" Using synthetic producer\n",
+					i, 0);
+			return -EINVAL;
+		}
+		if (rte_eth_tx_queue_setup(i, 0, NB_TX_DESC,
+					rte_socket_id(), NULL) < 0) {
+			evt_err("Failed to setup eth port [%d]"
+					" tx_queue: %d."
+					" Using synthetic producer\n",
+					i, 0);
+			return -EINVAL;
 		}

+		t->mt_unsafe |= mt_state;
+		t->tx_buf[i] =
+			rte_malloc(NULL, RTE_ETH_TX_BUFFER_SIZE(BURST_SIZE), 0);
+		if (t->tx_buf[i] == NULL)
+			rte_panic("Unable to allocate Tx buffer memory.");
 		rte_eth_promiscuous_enable(i);
 	}

@@ -591,7 +599,7 @@ perf_mempool_setup(struct evt_test *test, struct evt_options *opt)
 	} else {
 		t->pool = rte_pktmbuf_pool_create(test->name, /* mempool name */
 				opt->pool_sz, /* number of elements*/
-				0, /* cache size*/
+				512, /* cache size*/
 				0,
 				RTE_MBUF_DEFAULT_BUF_SIZE,
 				opt->socket_id); /* flags */
diff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h
index 95a2174..a847a75 100644
--- a/app/test-eventdev/test_perf_common.h
+++ b/app/test-eventdev/test_perf_common.h
@@ -45,6 +45,7 @@
 #include <rte_malloc.h>
 #include <rte_mempool.h>
 #include <rte_prefetch.h>
+#include <rte_spinlock.h>

 #include "evt_common.h"
 #include "evt_options.h"
@@ -74,12 +75,15 @@ struct test_perf {
 	int done;
 	uint64_t outstand_pkts;
 	uint8_t nb_workers;
+	uint8_t mt_unsafe;
 	enum evt_test_result result;
 	uint32_t nb_flows;
 	uint64_t nb_pkts;
 	struct rte_mempool *pool;
 	struct prod_data prod[EVT_MAX_PORTS];
 	struct worker_data worker[EVT_MAX_PORTS];
+	struct rte_eth_dev_tx_buffer *tx_buf[RTE_MAX_ETHPORTS];
+	rte_spinlock_t tx_lk[RTE_MAX_ETHPORTS];
 	struct evt_options *opt;
 	uint8_t sched_type_list[EVT_MAX_STAGES] __rte_cache_aligned;
 } __rte_cache_aligned;
@@ -159,6 +163,8 @@ int perf_test_result(struct evt_test *test, struct evt_options *opt);
 int perf_opt_check(struct evt_options *opt, uint64_t nb_queues);
 int perf_test_setup(struct evt_test *test, struct evt_options *opt);
 int perf_ethdev_setup(struct evt_test *test, struct evt_options *opt);
+int perf_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride,
+		struct rte_event_port_conf prod_conf);
 int perf_mempool_setup(struct evt_test *test, struct evt_options *opt);
 int perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt,
 				uint8_t stride, uint8_t nb_queues);
--
2.7.4

^ permalink raw reply related	[flat|nested] 122+ messages in thread

end of thread, other threads:[~2018-01-17 17:19 UTC | newest]

Thread overview: 122+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-30  7:24 [PATCH 1/4] app/eventdev: modify ethdev setup to support Tx Pavan Nikhilesh
2017-11-30  7:24 ` [PATCH 2/4] app/eventdev: add packet distribution logs Pavan Nikhilesh
2017-12-10 12:31   ` Jerin Jacob
2017-11-30  7:24 ` [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 ` [PATCH 4/4] doc: add perf pipeline test in eventdev test guide Pavan Nikhilesh
2017-12-18 21:43 ` [PATCH v2 01/12] app/eventdev: add packet distribution logs Pavan Nikhilesh
2017-12-18 21:43   ` [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   ` [PATCH v2 03/12] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-08 14:06     ` Jerin Jacob
2017-12-18 21:43   ` [PATCH v2 04/12] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2017-12-18 21:43   ` [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   ` [PATCH v2 06/12] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2017-12-18 21:44   ` [PATCH v2 07/12] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2017-12-18 21:44   ` [PATCH v2 08/12] app/eventdev: add pipeline queue test Pavan Nikhilesh
2017-12-18 21:44   ` [PATCH v2 09/12] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2017-12-18 21:44   ` [PATCH v2 10/12] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-08 14:15     ` Jerin Jacob
2017-12-18 21:44   ` [PATCH v2 11/12] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2017-12-18 21:44   ` [PATCH v2 12/12] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-10 14:51 ` [PATCH v3 01/12] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 02/12] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 03/12] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 04/12] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 05/12] app/eventdev: add perf ethport setup and destroy Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 06/12] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 07/12] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-10 14:51   ` [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   ` [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   ` [PATCH v3 10/12] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 11/12] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-10 14:51   ` [PATCH v3 12/12] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-12 16:44 ` [PATCH v4 01/13] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-12 16:44   ` [PATCH v4 02/13] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-12 16:44   ` [PATCH v4 03/13] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-12 16:44   ` [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   ` [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   ` [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   ` [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   ` [PATCH v4 08/13] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 11:57     ` Van Haaren, Harry
2018-01-12 16:44   ` [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   ` [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   ` [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   ` [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   ` [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 ` [PATCH v5 01/14] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 02/14] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 03/14] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 04/14] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 05/14] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 06/14] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 07/14] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 08/14] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 09/14] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 10/14] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 11/14] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 12/14] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 15:17   ` [PATCH v5 13/14] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-16 15:20 ` [PATCH v5 14/14] doc: update 18.02 release notes Pavan Nikhilesh
2018-01-16 15:39 ` [PATCH v6 01/14] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 02/14] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 03/14] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 04/14] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 05/14] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 06/14] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 07/14] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 08/14] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 09/14] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 15:39   ` [PATCH v6 10/14] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 15:40   ` [PATCH v6 11/14] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 15:40   ` [PATCH v6 12/14] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 15:40   ` [PATCH v6 13/14] doc: add pipeline test in eventdev test guide Pavan Nikhilesh
2018-01-16 15:40   ` [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 ` [PATCH v7 01/15] app/eventdev: add packet distribution logs Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 02/15] app/eventdev: add pipeline test setup and destroy Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 03/15] app/eventdev: add mempool " Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 04/15] app/eventdev: add pipeline opt dump and check functions Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 05/15] app/eventdev: add pipeline ethport setup and destroy Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 06/15] app/eventdev: add event port setup and Rx adapter setup Pavan Nikhilesh
2018-01-16 17:45   ` [PATCH v7 07/15] app/eventdev: add Tx service setup Pavan Nikhilesh
2018-01-16 17:46   ` [PATCH v7 08/15] app/eventdev: launch pipeline lcores Pavan Nikhilesh
2018-01-16 17:46   ` [PATCH v7 09/15] app/eventdev: add pipeline queue test Pavan Nikhilesh
2018-01-16 17:46   ` [PATCH v7 10/15] app/eventdev: add pipeline queue worker functions Pavan Nikhilesh
2018-01-16 17:46   ` [PATCH v7 11/15] app/eventdev: add pipeline atq test Pavan Nikhilesh
2018-01-16 17:46   ` [PATCH v7 12/15] app/eventdev: add pipeline atq worker functions Pavan Nikhilesh
2018-01-16 17:46   ` [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   ` [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   ` [PATCH v7 15/15] doc: update 18.02 release notes Pavan Nikhilesh
2018-01-17  5:47     ` Fw: " Bhagavatula, Pavan
2018-01-17 17:14       ` Mcnamara, John

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.