Messages in this thread | | | Date | Tue, 28 Apr 2015 14:59:04 -0700 | From | Stephen Boyd <> | Subject | Re: [PATCH 1/2] timer: avoid unnecessary waking up of nohz CPU |
| |
On 04/27/15 19:21, Joonwoo Park wrote: > At present, internal_add_timer() examines flags with 'base' which doesn't > contain flags. Examine with 'timer->base' to avoid unnecessary waking up > of nohz CPU when timer base has TIMER_DEFERRABLE. > > CC: Thomas Gleixner <tglx@linutronix.de> > CC: John Stultz <john.stultz@linaro.org> > Signed-off-by: Joonwoo Park <joonwoop@codeaurora.org> > --- > kernel/time/timer.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/time/timer.c b/kernel/time/timer.c > index 2ece3aa..e5d5733c 100644 > --- a/kernel/time/timer.c > +++ b/kernel/time/timer.c > @@ -434,7 +434,7 @@ static void internal_add_timer(struct tvec_base *base, struct timer_list *timer) > * require special care against races with idle_cpu(), lets deal > * with that later. > */ > - if (!tbase_get_deferrable(base) || tick_nohz_full_cpu(base->cpu)) > + if (!tbase_get_deferrable(timer->base) || tick_nohz_full_cpu(base->cpu)) > wake_up_nohz_cpu(base->cpu); > } >
This looks like a fix for commit 9f6d9baaa8ca (timer: Kick dynticks targets on mod_timer*() calls, 2014-06-22) which changed the code to use base instead of timer->base when it moved this condition from add_timer_on() into internal_add_timer(). Is that right?
-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
| |