Message ID | 3c77c9453e42b7a914c15ef67a8ee142d3543a48.1395897612.git.viresh.kumar@linaro.org |
---|---|
State | New |
Headers | show |
On Thu, 27 Mar 2014, Viresh Kumar wrote: > If active_bases already has entry for a particular clock type, then we don't > need to rewrite it while queuing a hrtimer. > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- > Initially I thought of doing this but then thought better remove active_bases > completely and so didn't sent this one. Now it might find some place for itself > :). > > kernel/hrtimer.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c > index da351ad..acfef5f 100644 > --- a/kernel/hrtimer.c > +++ b/kernel/hrtimer.c > @@ -864,8 +864,9 @@ static int enqueue_hrtimer(struct hrtimer *timer, > { > debug_activate(timer); > > + if (!timerqueue_getnext(&base->active)) > + base->cpu_base->active_bases |= 1 << base->index; > timerqueue_add(&base->active, &timer->node); > - base->cpu_base->active_bases |= 1 << base->index; The conditional is more expensive than actually doing the OR operation at least on x86 as it results in a branch. Thanks, tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index da351ad..acfef5f 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c @@ -864,8 +864,9 @@ static int enqueue_hrtimer(struct hrtimer *timer, { debug_activate(timer); + if (!timerqueue_getnext(&base->active)) + base->cpu_base->active_bases |= 1 << base->index; timerqueue_add(&base->active, &timer->node); - base->cpu_base->active_bases |= 1 << base->index; /* * HRTIMER_STATE_ENQUEUED is or'ed to the current state to preserve the
If active_bases already has entry for a particular clock type, then we don't need to rewrite it while queuing a hrtimer. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- Initially I thought of doing this but then thought better remove active_bases completely and so didn't sent this one. Now it might find some place for itself :). kernel/hrtimer.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)