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 ce4fec46c1f6821afb5d0ef9c3099cd094153fd9 (commit) from 7af8b884256bbab5070996d7897216ae77b758fe (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 ce4fec46c1f6821afb5d0ef9c3099cd094153fd9 Author: Brian Brooks brian.brooks@linaro.org Date: Thu Oct 13 16:18:44 2016 -0500
timers: fix off by one tick in timer expiration processing
A timer pool's tick starts at t0 (zero). Once the first period has passed, the timer pool is scanned for any timers that have expired since t0 + 1.
Current code does an atomic fetch increment on the tick, but uses the previous tick during timer expiration processing. What is needed is the previous tick + 1.
The observable effect without this patch is that timers are expired one tick period (timer resolution) later than they should be.
Fixes https://bugs.linaro.org/show_bug.cgi?id=2552
Signed-off-by: Brian Brooks brian.brooks@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c index becea9d..b26ac6b 100644 --- a/platform/linux-generic/odp_timer.c +++ b/platform/linux-generic/odp_timer.c @@ -691,7 +691,7 @@ static void timer_notify(odp_timer_pool *tp) prev_tick = odp_atomic_fetch_inc_u64(&tp->cur_tick);
/* Scan timer array, looking for timers to expire */ - (void)odp_timer_pool_expire(tp, prev_tick); + (void)odp_timer_pool_expire(tp, prev_tick + 1);
/* Else skip scan of timers. cur_tick was updated and next itimer * invocation will process older expiration ticks as well */
-----------------------------------------------------------------------
Summary of changes: platform/linux-generic/odp_timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
hooks/post-receive