Re: [dpdk-dev] [PATCH 2/2] test/event_timer: improve unit test compatability

2019-03-25 Thread Carrillo, Erik G



> -Original Message-
> From: Pavan Nikhilesh Bhagavatula [mailto:pbhagavat...@marvell.com]
> Sent: Saturday, March 16, 2019 3:28 PM
> To: Jerin Jacob Kollanukkaran ; Carrillo, Erik G
> 
> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula
> 
> Subject: [dpdk-dev] [PATCH 2/2] test/event_timer: improve unit test
> compatability
> 
> From: Pavan Nikhilesh 
> 
> Check if eventdev is open system eventdevs i.e. max_num_events = -1
> before asserting.
> Allow event timer adapter to adjust the resolution using
> RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES and re-calculate timeout ticks
> based on the adjusted resolution.
> 
> Signed-off-by: Pavan Nikhilesh 

Just one spelling nit - it should be "compatibility" in the subject line.  With 
that change:

Acked-by: Erik Gabriel Carrillo 


[dpdk-dev] [PATCH 2/2] test/event_timer: improve unit test compatability

2019-03-16 Thread Pavan Nikhilesh Bhagavatula
From: Pavan Nikhilesh 

Check if eventdev is open system eventdevs i.e. max_num_events = -1
before asserting.
Allow event timer adapter to adjust the resolution using
RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES and re-calculate timeout ticks
based on the adjusted resolution.

Signed-off-by: Pavan Nikhilesh 
---
 app/test/test_event_timer_adapter.c | 61 +
 1 file changed, 37 insertions(+), 24 deletions(-)

diff --git a/app/test/test_event_timer_adapter.c 
b/app/test/test_event_timer_adapter.c
index d4b78e093..742ca8181 100644
--- a/app/test/test_event_timer_adapter.c
+++ b/app/test/test_event_timer_adapter.c
@@ -42,8 +42,13 @@ static struct rte_event_timer_adapter *timdev;
 static struct rte_mempool *eventdev_test_mempool;
 static struct rte_ring *timer_producer_ring;
 static uint64_t global_bkt_tck_ns;
+static uint64_t global_info_bkt_tck_ns;
 static volatile uint8_t arm_done;
 
+#define CALC_TICKS(tks)\
+   ((tks * global_bkt_tck_ns) / global_info_bkt_tck_ns)
+
+
 static bool using_services;
 static uint32_t test_lcore1;
 static uint32_t test_lcore2;
@@ -80,7 +85,8 @@ eventdev_setup(void)
 
ret = rte_event_dev_info_get(evdev, &info);
TEST_ASSERT_SUCCESS(ret, "Failed to get event dev info");
-   TEST_ASSERT(info.max_num_events >= (int32_t)MAX_TIMERS,
+   TEST_ASSERT(info.max_num_events < 0 ||
+   info.max_num_events >= (int32_t)MAX_TIMERS,
"ERROR max_num_events=%d < max_events=%d",
info.max_num_events, MAX_TIMERS);
 
@@ -276,12 +282,14 @@ test_port_conf_cb(uint16_t id, uint8_t event_dev_id, 
uint8_t *event_port_id,
 static int
 _timdev_setup(uint64_t max_tmo_ns, uint64_t bkt_tck_ns)
 {
+   struct rte_event_timer_adapter_info info;
struct rte_event_timer_adapter_conf config = {
.event_dev_id = evdev,
.timer_adapter_id = TEST_ADAPTER_ID,
.timer_tick_ns = bkt_tck_ns,
.max_tmo_ns = max_tmo_ns,
.nb_timers = MAX_TIMERS * 10,
+   .flags = RTE_EVENT_TIMER_ADAPTER_F_ADJUST_RES,
};
uint32_t caps = 0;
const char *pool_name = "timdev_test_pool";
@@ -317,6 +325,10 @@ _timdev_setup(uint64_t max_tmo_ns, uint64_t bkt_tck_ns)
return TEST_FAILED;
}
 
+   rte_event_timer_adapter_get_info(timdev, &info);
+
+   global_info_bkt_tck_ns = info.min_resolution_ns;
+
return TEST_SUCCESS;
 }
 
@@ -384,10 +396,11 @@ test_timer_state(void)
.state = RTE_EVENT_TIMER_NOT_ARMED,
};
 
+
rte_mempool_get(eventdev_test_mempool, (void **)&ev_tim);
*ev_tim = tim;
ev_tim->ev.event_ptr = ev_tim;
-   ev_tim->timeout_ticks = 120;
+   ev_tim->timeout_ticks = CALC_TICKS(120);
 
TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 0,
"Armed timer exceeding max_timeout.");
@@ -396,7 +409,7 @@ test_timer_state(void)
RTE_EVENT_TIMER_ERROR_TOOLATE, ev_tim->state);
 
ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
-   ev_tim->timeout_ticks = 10;
+   ev_tim->timeout_ticks = CALC_TICKS(10);
 
TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
"Failed to arm timer with proper timeout.");
@@ -412,7 +425,7 @@ test_timer_state(void)
"Armed timer failed to trigger.");
 
ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED;
-   ev_tim->timeout_ticks = 90;
+   ev_tim->timeout_ticks = CALC_TICKS(90);
TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1,
"Failed to arm timer with proper timeout.");
TEST_ASSERT_EQUAL(rte_event_timer_cancel_burst(timdev, &ev_tim, 1),
@@ -438,7 +451,7 @@ _arm_timers(uint64_t timeout_tcks, uint64_t timers)
.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
.ev.event_type =  RTE_EVENT_TYPE_TIMER,
.state = RTE_EVENT_TIMER_NOT_ARMED,
-   .timeout_ticks = timeout_tcks,
+   .timeout_ticks = CALC_TICKS(timeout_tcks),
};
 
for (i = 0; i < timers; i++) {
@@ -539,7 +552,7 @@ _arm_timers_burst(uint64_t timeout_tcks, uint64_t timers)
.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
.ev.event_type =  RTE_EVENT_TYPE_TIMER,
.state = RTE_EVENT_TIMER_NOT_ARMED,
-   .timeout_ticks = timeout_tcks,
+   .timeout_ticks = CALC_TICKS(timeout_tcks),
};
 
for (i = 0; i < timers / MAX_BURST; i++) {
@@ -608,7 +621,7 @@ test_timer_cancel(void)
.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
.ev.event_type =  RTE_EVENT_TYPE_TIMER,
.state = RTE_EVENT_TIMER_NOT_ARMED,
-   .timeout_ticks = 20,
+   .timeout_ticks = CALC_TICKS(20),
};
 
for (