From: Ingo Molnar <mingo@elte.hu>
To: John Stultz <john.stultz@linaro.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Yong Zhang <yong.zhang0@gmail.com>,
David Daney <ddaney.cavm@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH] clocksource: Avoid selecting mult values that might overflow when adjusted
Date: Fri, 4 Nov 2011 16:20:38 +0100 [thread overview]
Message-ID: <20111104152035.GA1847@elte.hu> (raw)
In-Reply-To: <1320412312.3514.1.camel@js-netbook>
* John Stultz <john.stultz@linaro.org> wrote:
> On Thu, 2011-11-03 at 22:10 +0100, Ingo Molnar wrote:
> > * John Stultz <john.stultz@linaro.org> wrote:
> >
> > > For some frequqencies, the clocks_calc_mult_shift() function will
> > > unfortunately select mult values very close to 0xffffffff. This
> > > has the potential to overflow when NTP adjusts the clock, adding
> > > to the mult value.
> > >
> > > This patch adds a clocksource.maxadj value, which provides
> > > an approximation of an 11% adjustment(NTP limits adjustments to
> > > 500ppm and the tick adjustment is limited to 10%), which could
> > > be made to the clocksource.mult value. This is then used to both
> > > check that the current mult value won't overflow/underflow, as
> > > well as warning us if the timekeeping_adjust() code pushes over
> > > that 11% boundary.
> > >
> > > CC: Yong Zhang <yong.zhang0@gmail.com>
> > > CC: David Daney <ddaney.cavm@gmail.com>
> > > CC: Thomas Gleixner <tglx@linutronix.de>
> > > Reported-by: Chen Jie <chenj@lemote.com>
> > > Reported-by: zhangfx <zhangfx@lemote.com>
> > > Signed-off-by: John Stultz <john.stultz@linaro.org>
> > > ---
> > > include/linux/clocksource.h | 3 +-
> > > kernel/time/clocksource.c | 53 ++++++++++++++++++++++++++++++++++--------
> > > kernel/time/timekeeping.c | 3 ++
> > > 3 files changed, 48 insertions(+), 11 deletions(-)
> >
> > This patch (included in tip:timers/urgent) causes the following boot
> > warning x86:
> >
> > [ 0.000000] Fast TSC calibration using PIT
> > [ 0.000000] ------------[ cut here ]------------
> > [ 0.000000] WARNING: at kernel/time/timekeeping.c:855 do_timer+0x47f/0x4c0()
> > [ 0.000000] Hardware name: System Product Name
> > [ 0.000000] Adjusting more then 11%
> > [ 0.000000] Modules linked in:
> > [ 0.000000] Pid: 0, comm: swapper Not tainted 3.1.0-tip+ #161792
> > [ 0.000000] Call Trace:
> > [ 0.000000] <IRQ> [<ffffffff81042d0a>] warn_slowpath_common+0x7a/0xb0
> > [ 0.000000] [<ffffffff81042de1>] warn_slowpath_fmt+0x41/0x50
> > [ 0.000000] [<ffffffff8106e78f>] do_timer+0x47f/0x4c0
> > [ 0.000000] [<ffffffff81073953>] tick_periodic+0x63/0x80
> > [ 0.000000] [<ffffffff810739f1>] tick_handle_periodic+0x21/0x70
> > [ 0.000000] [<ffffffff810046d8>] timer_interrupt+0x18/0x20
> > [ 0.000000] [<ffffffff8109ff9e>] handle_irq_event_percpu+0x5e/0x220
> > [ 0.000000] [<ffffffff810a019b>] handle_irq_event+0x3b/0x60
> > [ 0.000000] [<ffffffff810a295c>] handle_level_irq+0x6c/0xd0
> > [ 0.000000] [<ffffffff81003f34>] handle_irq+0x44/0xa0
> >
> > Full bootlog and config attached.
> >
> > i've excluded it from tip:master for now.
>
> Sounds good. Thanks for the heads up. Do you have a dmesg for this
> system as well, so I can narrow down what I should try to reproduce
> this on?
The full bootlog that i attached to my report is a dmesg - do you
need any other info beyond that?
Thanks,
Ingo
next prev parent reply other threads:[~2011-11-04 15:22 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-02 20:01 [PATCH] clocksource: Avoid selecting mult values that might overflow when adjusted John Stultz
2011-11-03 3:10 ` Yong Zhang
2011-11-03 9:36 ` Américo Wang
2011-11-04 2:16 ` Yong Zhang
2011-11-03 12:05 ` Thomas Gleixner
2011-11-03 13:10 ` John Stultz
2011-11-03 13:26 ` Thomas Gleixner
2011-11-03 14:01 ` John Stultz
2011-11-03 14:09 ` John Stultz
2011-11-03 14:49 ` Thomas Gleixner
2011-11-03 14:52 ` Thomas Gleixner
2011-11-03 15:14 ` John Stultz
2011-11-03 21:10 ` Ingo Molnar
2011-11-04 13:11 ` John Stultz
2011-11-04 15:20 ` Ingo Molnar [this message]
2011-11-08 3:09 ` John Stultz
2011-11-08 3:11 ` Yong Zhang
2011-11-08 5:02 ` Yong Zhang
2011-11-08 21:39 ` John Stultz
2011-11-09 1:46 ` Yong Zhang
2011-11-10 15:05 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2011-11-09 2:08 John Stultz
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=20111104152035.GA1847@elte.hu \
--to=mingo@elte.hu \
--cc=ddaney.cavm@gmail.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=yong.zhang0@gmail.com \
/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.