* Copyright(c) 2017 Cavium, Inc
*/
+#include <math.h>
+
#include "test_perf_common.h"
int
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;
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;
uint8_t i;
uint64_t total = 0;
- rte_smp_rmb();
for (i = 0; i < t->nb_workers; i++)
total += t->worker[i].processed_pkts;
uint8_t i;
uint64_t total = 0;
- rte_smp_rmb();
for (i = 0; i < t->nb_workers; i++)
total += t->worker[i].latency;
int port_idx = 0;
/* launch workers */
- RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+ RTE_LCORE_FOREACH_WORKER(lcore_id) {
if (!(opt->wlcores[lcore_id]))
continue;
}
/* launch producers */
- RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+ RTE_LCORE_FOREACH_WORKER(lcore_id) {
if (!(opt->plcores[lcore_id]))
continue;
opt->prod_type ==
EVT_PROD_TYPE_EVENT_TIMER_ADPTR) {
t->done = true;
- rte_smp_wmb();
break;
}
}
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;
{
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;
}
/* 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)) {
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)) {