app/eventdev: add event timer adapter as a producer
[dpdk.git] / app / test-eventdev / test_perf_queue.c
index d5b8908..74469a5 100644 (file)
@@ -49,7 +49,7 @@ perf_queue_worker(void *arg, const int enable_fwd_latency)
                        rte_pause();
                        continue;
                }
-               if (enable_fwd_latency)
+               if (enable_fwd_latency && !prod_timer_type)
                /* first q in pipeline, mark timestamp to compute fwd latency */
                        mark_fwd_latency(&ev, nb_stages);
 
@@ -88,7 +88,7 @@ perf_queue_worker_burst(void *arg, const int enable_fwd_latency)
                }
 
                for (i = 0; i < nb_rx; i++) {
-                       if (enable_fwd_latency) {
+                       if (enable_fwd_latency && !prod_timer_type) {
                                rte_prefetch0(ev[i+1].event_ptr);
                                /* first queue in pipeline.
                                 * mark time stamp to compute fwd latency
@@ -161,7 +161,8 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
        struct rte_event_dev_info dev_info;
 
        nb_ports = evt_nr_active_lcores(opt->wlcores);
-       nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? 0 :
+       nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ||
+                opt->prod_type == EVT_PROD_TYPE_EVENT_TIMER_ADPTR ? 0 :
                evt_nr_active_lcores(opt->plcores);
 
        nb_queues = perf_queue_nb_event_queues(opt);
@@ -219,8 +220,18 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt)
                }
        }
 
+       if (opt->wkr_deq_dep > dev_info.max_event_port_dequeue_depth)
+               opt->wkr_deq_dep = dev_info.max_event_port_dequeue_depth;
+
+       /* port configuration */
+       const struct rte_event_port_conf p_conf = {
+                       .dequeue_depth = opt->wkr_deq_dep,
+                       .enqueue_depth = dev_info.max_event_port_dequeue_depth,
+                       .new_event_threshold = dev_info.max_num_events,
+       };
+
        ret = perf_event_dev_port_setup(test, opt, nb_stages /* stride */,
-                                       nb_queues);
+                                       nb_queues, &p_conf);
        if (ret)
                return ret;