From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hunt Subject: [PATCH v7 10/17] test: test single and burst distributor API Date: Tue, 21 Feb 2017 03:17:46 +0000 Message-ID: <1487647073-129064-11-git-send-email-david.hunt@intel.com> References: <1485163480-156507-2-git-send-email-david.hunt@intel.com> <1487647073-129064-1-git-send-email-david.hunt@intel.com> Cc: bruce.richardson@intel.com, David Hunt To: dev@dpdk.org Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 8407A69C3 for ; Tue, 21 Feb 2017 11:17:27 +0100 (CET) In-Reply-To: <1487647073-129064-1-git-send-email-david.hunt@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: David Hunt --- app/test/test_distributor.c | 115 +++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 33 deletions(-) diff --git a/app/test/test_distributor.c b/app/test/test_distributor.c index 8866e31..c345382 100644 --- a/app/test/test_distributor.c +++ b/app/test/test_distributor.c @@ -543,16 +543,25 @@ static int test_error_distributor_create_name(void) { struct rte_distributor *d = NULL; + struct rte_distributor *db = NULL; char *name = NULL; d = rte_distributor_create(name, rte_socket_id(), rte_lcore_count() - 1, - RTE_DIST_ALG_BURST); + RTE_DIST_ALG_SINGLE); if (d != NULL || rte_errno != EINVAL) { printf("ERROR: No error on create() with NULL name param\n"); return -1; } + db = rte_distributor_create(name, rte_socket_id(), + rte_lcore_count() - 1, + RTE_DIST_ALG_BURST); + if (db != NULL || rte_errno != EINVAL) { + printf("ERROR: No error on create() with NULL param\n"); + return -1; + } + return 0; } @@ -560,15 +569,25 @@ int test_error_distributor_create_name(void) static int test_error_distributor_create_numworkers(void) { - struct rte_distributor *d = NULL; + struct rte_distributor *ds = NULL; + struct rte_distributor *db = NULL; - d = rte_distributor_create("test_numworkers", rte_socket_id(), + ds = rte_distributor_create("test_numworkers", rte_socket_id(), RTE_MAX_LCORE + 10, - RTE_DIST_ALG_BURST); - if (d != NULL || rte_errno != EINVAL) { + RTE_DIST_ALG_SINGLE); + if (ds != NULL || rte_errno != EINVAL) { printf("ERROR: No error on create() with num_workers > MAX\n"); return -1; } + + db = rte_distributor_create("test_numworkers", rte_socket_id(), + RTE_MAX_LCORE + 10, + RTE_DIST_ALG_BURST); + if (db != NULL || rte_errno != EINVAL) { + printf("ERROR: No error on create() num_workers > MAX\n"); + return -1; + } + return 0; } @@ -601,26 +620,43 @@ quit_workers(struct worker_params *wp, struct rte_mempool *p) static int test_distributor(void) { - static struct rte_distributor *d; + static struct rte_distributor *ds; + static struct rte_distributor *db; + static struct rte_distributor *dist[2]; static struct rte_mempool *p; + int i; if (rte_lcore_count() < 2) { printf("ERROR: not enough cores to test distributor\n"); return -1; } - if (d == NULL) { - d = rte_distributor_create("Test_dist_burst", + if (db == NULL) { + db = rte_distributor_create("Test_dist_burst", rte_socket_id(), rte_lcore_count() - 1, RTE_DIST_ALG_BURST); - if (d == NULL) { + if (db == NULL) { printf("Error creating burst distributor\n"); return -1; } } else { - rte_distributor_flush(d); - rte_distributor_clear_returns(d); + rte_distributor_flush(db); + rte_distributor_clear_returns(db); + } + + if (ds == NULL) { + ds = rte_distributor_create("Test_dist_single", + rte_socket_id(), + rte_lcore_count() - 1, + RTE_DIST_ALG_SINGLE); + if (ds == NULL) { + printf("Error creating single distributor\n"); + return -1; + } + } else { + rte_distributor_flush(ds); + rte_distributor_clear_returns(ds); } const unsigned nb_bufs = (511 * rte_lcore_count()) < BIG_BATCH ? @@ -634,37 +670,50 @@ test_distributor(void) } } - worker_params.dist = d; - sprintf(worker_params.name, "burst"); + dist[0] = ds; + dist[1] = db; - rte_eal_mp_remote_launch(handle_work, &worker_params, SKIP_MASTER); - if (sanity_test(&worker_params, p) < 0) - goto err; - quit_workers(&worker_params, p); + for (i = 0; i < 2; i++) { - rte_eal_mp_remote_launch(handle_work_with_free_mbufs, &worker_params, - SKIP_MASTER); - if (sanity_test_with_mbuf_alloc(&worker_params, p) < 0) - goto err; - quit_workers(&worker_params, p); + worker_params.dist = dist[i]; + if (i) + sprintf(worker_params.name, "burst"); + else + sprintf(worker_params.name, "single"); - if (rte_lcore_count() > 2) { - rte_eal_mp_remote_launch(handle_work_for_shutdown_test, - &worker_params, - SKIP_MASTER); - if (sanity_test_with_worker_shutdown(&worker_params, p) < 0) + rte_eal_mp_remote_launch(handle_work, + &worker_params, SKIP_MASTER); + if (sanity_test(&worker_params, p) < 0) goto err; quit_workers(&worker_params, p); - rte_eal_mp_remote_launch(handle_work_for_shutdown_test, - &worker_params, - SKIP_MASTER); - if (test_flush_with_worker_shutdown(&worker_params, p) < 0) + rte_eal_mp_remote_launch(handle_work_with_free_mbufs, + &worker_params, SKIP_MASTER); + if (sanity_test_with_mbuf_alloc(&worker_params, p) < 0) goto err; quit_workers(&worker_params, p); - } else { - printf("Not enough cores to run tests for worker shutdown\n"); + if (rte_lcore_count() > 2) { + rte_eal_mp_remote_launch(handle_work_for_shutdown_test, + &worker_params, + SKIP_MASTER); + if (sanity_test_with_worker_shutdown(&worker_params, + p) < 0) + goto err; + quit_workers(&worker_params, p); + + rte_eal_mp_remote_launch(handle_work_for_shutdown_test, + &worker_params, + SKIP_MASTER); + if (test_flush_with_worker_shutdown(&worker_params, + p) < 0) + goto err; + quit_workers(&worker_params, p); + + } else { + printf("Too few cores to run worker shutdown test\n"); + } + } if (test_error_distributor_create_numworkers() == -1 || -- 2.7.4