diff options
author | Matias Elo <matias.elo@nokia.com> | 2018-08-01 10:30:51 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-11-28 17:16:38 +0300 |
commit | e5f7c8fd4249b11a86715cd31394c73145cc674e (patch) | |
tree | b6c3a8d962c4215bbf0503cf05fa86b2a6a4662c /test/validation/api/timer | |
parent | 3bd31be9ea2f5e96e96a638a081d8223d1734e6c (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.c | 23 |
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(¶ms); 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", ¶ms); 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); |