This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via a01d17348d6c34457a415935e702a24257adcf8a (commit) from 3e3f0f51da0af53d6161ffa270e1b1c13c88e3e4 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit a01d17348d6c34457a415935e702a24257adcf8a Author: Petri Savolainen petri.savolainen@linaro.org Date: Fri Jun 15 10:41:54 2018 +0300
example: timer_accuracy: convert full nsec time to ticks
Calculate timeout values in nsec instead of ticks to avoid (accumulating) rounding error caused by nsec to tick conversion.
Fixes bug https://bugs.linaro.org/show_bug.cgi?id=3787, timeouts are received consistently with different resolution values.
Suggested-by: Josep Puigdemont josep.puigdemont@linaro.org Signed-off-by: Petri Savolainen petri.savolainen@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/example/timer/odp_timer_accuracy.c b/example/timer/odp_timer_accuracy.c index f1a088cb..3b0d7e38 100644 --- a/example/timer/odp_timer_accuracy.c +++ b/example/timer/odp_timer_accuracy.c @@ -111,8 +111,8 @@ static int start_timers(test_global_t *test_global) odp_timer_t timer; odp_queue_t queue; odp_queue_param_t queue_param; - uint64_t tick, first_tick, period_tick, offset_tick; - uint64_t period_ns, res_ns, first_ns, res_capa; + uint64_t tick, start_tick; + uint64_t period_ns, res_ns, start_ns, time_ns, res_capa; odp_event_t event; odp_timeout_t timeout; odp_timer_set_t ret; @@ -204,9 +204,6 @@ static int start_timers(test_global_t *test_global) odp_timer_pool_start();
test_global->timer_pool = timer_pool; - first_tick = 0; - offset_tick = odp_timer_ns_to_tick(timer_pool, START_OFFSET_NS); - period_tick = odp_timer_ns_to_tick(timer_pool, period_ns);
for (i = 0; i < num; i++) { timer = odp_timer_alloc(timer_pool, queue, NULL); @@ -219,6 +216,8 @@ static int start_timers(test_global_t *test_global) test_global->timer[i] = timer; }
+ start_tick = 0; + for (i = 0; i < num; i++) { timer = test_global->timer[i];
@@ -231,13 +230,14 @@ static int start_timers(test_global_t *test_global) event = odp_timeout_to_event(timeout);
if (i == 0) { - first_tick = odp_timer_current_tick(timer_pool); + start_tick = odp_timer_current_tick(timer_pool); time = odp_time_local(); - first_ns = odp_time_to_ns(time); - test_global->first_ns = first_ns + START_OFFSET_NS; + start_ns = odp_time_to_ns(time); + test_global->first_ns = start_ns + START_OFFSET_NS; }
- tick = first_tick + offset_tick + (i * period_tick); + time_ns = test_global->first_ns + (i * period_ns); + tick = start_tick + odp_timer_ns_to_tick(timer_pool, time_ns); ret = odp_timer_set_abs(timer, tick, &event);
if (ret != ODP_TIMER_SUCCESS) {
-----------------------------------------------------------------------
Summary of changes: example/timer/odp_timer_accuracy.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-)
hooks/post-receive