aboutsummaryrefslogtreecommitdiff
path: root/test/validation/api/timer
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2018-08-01 10:30:51 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-11-28 17:16:38 +0300
commite5f7c8fd4249b11a86715cd31394c73145cc674e (patch)
treeb6c3a8d962c4215bbf0503cf05fa86b2a6a4662c /test/validation/api/timer
parent3bd31be9ea2f5e96e96a638a081d8223d1734e6c (diff)
validation: timer: use new timer pool capabilities
Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed by Bill Fischofer <bill.fischofer@linaro.org> Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'test/validation/api/timer')
-rw-r--r--test/validation/api/timer/timer.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/test/validation/api/timer/timer.c b/test/validation/api/timer/timer.c
index 281e02c5c..4561e6886 100644
--- a/test/validation/api/timer/timer.c
+++ b/test/validation/api/timer/timer.c
@@ -828,6 +828,7 @@ static void timer_test_odp_timer_all(void)
odp_timer_capability_t timer_capa;
odp_pool_t tbp;
odp_timer_pool_t tp;
+ uint32_t num_timers;
/* Reserve at least one core for running other processes so the timer
* test hopefully can run undisturbed and thus get better timing
@@ -842,10 +843,15 @@ static void timer_test_odp_timer_all(void)
if (num_workers < 1)
num_workers = 1;
+ num_timers = num_workers * NTIMERS;
+ CU_ASSERT_FATAL(!odp_timer_capability(ODP_CLOCK_CPU, &timer_capa));
+ if (timer_capa.max_timers && timer_capa.max_timers < num_timers)
+ num_timers = timer_capa.max_timers;
+
/* Create timeout pools */
odp_pool_param_init(&params);
params.type = ODP_POOL_TIMEOUT;
- params.tmo.num = (NTIMERS + 1) * num_workers;
+ params.tmo.num = num_timers + num_workers;
global_mem->tbp = odp_pool_create("tmo_pool", &params);
if (global_mem->tbp == ODP_POOL_INVALID)
@@ -853,14 +859,11 @@ static void timer_test_odp_timer_all(void)
tbp = global_mem->tbp;
/* Create a timer pool */
- if (odp_timer_capability(ODP_CLOCK_CPU, &timer_capa))
- CU_FAIL("Error: get timer capacity failed.\n");
-
resolution_ns = MAX(RES, timer_capa.highest_res_ns);
tparam.res_ns = resolution_ns;
tparam.min_tmo = MIN_TMO;
tparam.max_tmo = MAX_TMO;
- tparam.num_timers = num_workers * NTIMERS;
+ tparam.num_timers = num_timers;
tparam.priv = 0;
tparam.clk_src = ODP_CLOCK_CPU;
global_mem->tp = odp_timer_pool_create(NAME, &tparam);
@@ -884,9 +887,13 @@ static void timer_test_odp_timer_all(void)
LOG_DBG("Resolution: %" PRIu64 "\n", tparam.res_ns);
LOG_DBG("Min timeout: %" PRIu64 "\n", tparam.min_tmo);
LOG_DBG("Max timeout: %" PRIu64 "\n", tparam.max_tmo);
- LOG_DBG("Num timers..: %u\n", tparam.num_timers);
- LOG_DBG("Tmo range: %u ms (%" PRIu64 " ticks)\n", RANGE_MS,
+ LOG_DBG("Num timers: %u\n", tparam.num_timers);
+ LOG_DBG("Tmo range: %u ms (%" PRIu64 " ticks)\n", RANGE_MS,
odp_timer_ns_to_tick(tp, 1000000ULL * RANGE_MS));
+ LOG_DBG("Max timers: %" PRIu32 "\n", timer_capa.max_timers);
+ LOG_DBG("Max timer pools: %" PRIu32 "\n", timer_capa.max_pools);
+ LOG_DBG("Max timer pools combined: %" PRIu32 "\n",
+ timer_capa.max_pools_combined);
tick = odp_timer_ns_to_tick(tp, 0);
CU_ASSERT(tick == 0);
@@ -932,7 +939,7 @@ static void timer_test_odp_timer_all(void)
/* Check some statistics after the test */
if (odp_timer_pool_info(tp, &tpinfo) != 0)
CU_FAIL("odp_timer_pool_info");
- CU_ASSERT(tpinfo.param.num_timers == (unsigned)num_workers * NTIMERS);
+ CU_ASSERT(tpinfo.param.num_timers == num_timers);
CU_ASSERT(tpinfo.cur_timers == 0);
timers_allocated = odp_atomic_load_u32(&global_mem->timers_allocated);
CU_ASSERT(tpinfo.hwm_timers == timers_allocated);