X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest-eventdev%2Ftest_perf_common.c;h=cc100650c21e4a9e814b179564c3a41849b215e3;hb=95e0f23022a36d5d66957af3da7f2925b44a9a80;hp=b3af4bfecaffd3ad18871f279bd8ff19ae26bd13;hpb=93b7794b83524b322d03634969f77d767dec13f1;p=dpdk.git diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index b3af4bfeca..cc100650c2 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -2,6 +2,8 @@ * Copyright(c) 2017 Cavium, Inc */ +#include + #include "test_perf_common.h" int @@ -95,11 +97,13 @@ perf_event_timer_producer(void *arg) uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec; memset(&tim, 0, sizeof(struct rte_event_timer)); - timeout_ticks = opt->optm_timer_tick_nsec ? - (timeout_ticks * opt->timer_tick_nsec) - / opt->optm_timer_tick_nsec : timeout_ticks; + timeout_ticks = + opt->optm_timer_tick_nsec + ? ceil((double)(timeout_ticks * opt->timer_tick_nsec) / + opt->optm_timer_tick_nsec) + : timeout_ticks; timeout_ticks += timeout_ticks ? 0 : 1; - tim.ev.event_type = RTE_EVENT_TYPE_TIMER; + tim.ev.event_type = RTE_EVENT_TYPE_TIMER; tim.ev.op = RTE_EVENT_OP_NEW; tim.ev.sched_type = t->opt->sched_type_list[0]; tim.ev.queue_id = p->queue_id; @@ -159,11 +163,13 @@ perf_event_timer_producer_burst(void *arg) uint64_t timeout_ticks = opt->expiry_nsec / opt->timer_tick_nsec; memset(&tim, 0, sizeof(struct rte_event_timer)); - timeout_ticks = opt->optm_timer_tick_nsec ? - (timeout_ticks * opt->timer_tick_nsec) - / opt->optm_timer_tick_nsec : timeout_ticks; + timeout_ticks = + opt->optm_timer_tick_nsec + ? ceil((double)(timeout_ticks * opt->timer_tick_nsec) / + opt->optm_timer_tick_nsec) + : timeout_ticks; timeout_ticks += timeout_ticks ? 0 : 1; - tim.ev.event_type = RTE_EVENT_TYPE_TIMER; + tim.ev.event_type = RTE_EVENT_TYPE_TIMER; tim.ev.op = RTE_EVENT_OP_NEW; tim.ev.sched_type = t->opt->sched_type_list[0]; tim.ev.queue_id = p->queue_id; @@ -224,7 +230,6 @@ processed_pkts(struct test_perf *t) uint8_t i; uint64_t total = 0; - rte_smp_rmb(); for (i = 0; i < t->nb_workers; i++) total += t->worker[i].processed_pkts; @@ -237,7 +242,6 @@ total_latency(struct test_perf *t) uint8_t i; uint64_t total = 0; - rte_smp_rmb(); for (i = 0; i < t->nb_workers; i++) total += t->worker[i].latency; @@ -254,7 +258,7 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt, int port_idx = 0; /* launch workers */ - RTE_LCORE_FOREACH_SLAVE(lcore_id) { + RTE_LCORE_FOREACH_WORKER(lcore_id) { if (!(opt->wlcores[lcore_id])) continue; @@ -268,7 +272,7 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt, } /* launch producers */ - RTE_LCORE_FOREACH_SLAVE(lcore_id) { + RTE_LCORE_FOREACH_WORKER(lcore_id) { if (!(opt->plcores[lcore_id])) continue; @@ -327,7 +331,6 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt, opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) { t->done = true; - rte_smp_wmb(); break; } } @@ -341,7 +344,6 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt, rte_event_dev_dump(opt->dev_id, stdout); evt_err("No schedules for seconds, deadlock"); t->done = true; - rte_smp_wmb(); break; } dead_lock_remaining = remaining; @@ -541,8 +543,8 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues) { unsigned int lcores; - /* N producer + N worker + 1 master when producer cores are used - * Else N worker + 1 master when Rx adapter is used + /* N producer + N worker + main when producer cores are used + * Else N worker + main when Rx adapter is used */ lcores = opt->prod_type == EVT_PROD_TYPE_SYNT ? 3 : 2; @@ -552,8 +554,8 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues) } /* Validate worker lcores */ - if (evt_lcores_has_overlap(opt->wlcores, rte_get_master_lcore())) { - evt_err("worker lcores overlaps with master lcore"); + if (evt_lcores_has_overlap(opt->wlcores, rte_get_main_lcore())) { + evt_err("worker lcores overlaps with main lcore"); return -1; } if (evt_lcores_has_overlap_multi(opt->wlcores, opt->plcores)) { @@ -573,8 +575,8 @@ perf_opt_check(struct evt_options *opt, uint64_t nb_queues) opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR) { /* Validate producer lcores */ if (evt_lcores_has_overlap(opt->plcores, - rte_get_master_lcore())) { - evt_err("producer lcores overlaps with master lcore"); + rte_get_main_lcore())) { + evt_err("producer lcores overlaps with main lcore"); return -1; } if (evt_has_disabled_lcore(opt->plcores)) {