From: Peter Zijlstra <peterz@infradead.org>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] hrtimer: update '->active_bases' before calling hrtimer_force_reprogram()
Date: Thu, 2 Apr 2015 16:16:33 +0200 [thread overview]
Message-ID: <20150402141633.GC23123@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <CAKohpok=DnS+h-YCF8+=xeK9_4i9S=x+sKan9SWJYVEYiA99vA@mail.gmail.com>
On Thu, Apr 02, 2015 at 07:23:31PM +0530, Viresh Kumar wrote:
> On 2 April 2015 at 19:17, Peter Zijlstra <peterz@infradead.org> wrote:
> > On Thu, Apr 02, 2015 at 04:21:21PM +0530, Viresh Kumar wrote:
> >> 'active_bases' indicates which clock-base have active timers. While it
> >> is updated (almost) correctly, it is hardly used. Next commit will start
> >> using it to make code more efficient, but before that we need to fix a
> >> problem.
> >>
> >> While removing hrtimers, in __remove_hrtimer():
> >> - We first remove the hrtimer from the queue.
> >> - Then reprogram clockevent device if required
> >> (hrtimer_force_reprogram()).
> >> - And then finally clear 'active_bases', if no more timers are pending
> >> on the current clock base (from which we are removing the hrtimer).
> >>
> >> hrtimer_force_reprogram() needs to loop over all active clock bases to
> >> find the next expiry event, and while doing so it will use
> >> 'active_bases' (after next commit). And it will find the current base
> >> active, as we haven't cleared it until now, even if current clock base
> >> has no more hrtimers queued.
> >>
> >> To fix this issue, clear active_bases before calling
> >> hrtimer_force_reprogram().
> >
> > This is a small inefficiency right? Not an actual bug or anything.
>
> So, what's explained in this patch is a BUG, which isn't harming us today.
So then I'm not seeing how its a bug. Sure __hrtimer_get_next_event()
will iterate all the bases again, and it will not skip the just empty
one. But I don't see how that is anything but an inefficiency. By virtue
of the base being empty it cannot find an event there, so its a
pointless check.
What am I missing?
next prev parent reply other threads:[~2015-04-02 14:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-02 10:51 [PATCH 0/2] hrtimer: Only iterate over active bases Viresh Kumar
2015-04-02 10:51 ` [PATCH 1/2] hrtimer: update '->active_bases' before calling hrtimer_force_reprogram() Viresh Kumar
2015-04-02 13:47 ` Peter Zijlstra
2015-04-02 13:53 ` Viresh Kumar
2015-04-02 14:16 ` Peter Zijlstra [this message]
2015-04-02 14:23 ` Viresh Kumar
2015-04-02 10:51 ` [PATCH 2/2] hrtimer: create for_each_active_base() to iterate over active clock-bases Viresh Kumar
2015-04-02 13:45 ` Peter Zijlstra
2015-04-03 5:42 ` viresh kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150402141633.GC23123@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=viresh.kumar@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.