lkml.org 
[lkml]   [2015]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch 1/7] timers: Sanitize catchup_timer_jiffies() usage
On 26-05-15, 22:50, Thomas Gleixner wrote:
> 3) __run_timers()
>
> We only check on entry, which is silly, because base->timer_jiffies
> can be behind - especially on NOHZ kernels - and if there is a
> single deferrable timer somewhere between base->timer_jiffies and
> jiffies we expire it and then loop until base->timer_jiffies ==
> jiffies.

This may be incorrect. Once we expire that single deferrable timer, we
call detach_expired_timer(), which calls catchup_timer_jiffies() at
its end. And so the following loop should end right away, isn't it ?

while (time_after_eq(jiffies, base->timer_jiffies))

> +++ tip/kernel/time/timer.c
> -static bool catchup_timer_jiffies(struct tvec_base *base)
> +static inline bool catchup_timer_jiffies(struct tvec_base *base)

There is only one user left for this routine now, i.e. __run_timers().
Should we drop this routine ?

--
viresh


\
 
 \ /
  Last update: 2015-05-27 08:21    [W:0.186 / U:2.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site