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))
timerqueue_add(&base->active, &timer->node);base->cpu_base->active_bases |= 1 << base->index;
- 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