From: Ben Hutchings <ben@decadent.org.uk>
To: Chris Friesen <cfriesen@nortel.com>
Cc: linux-kernel@vger.kernel.org, Chris Adams <cmadams@hiwaay.net>,
510478@bugs.debian.org, Peter Zijlstra <a.p.zijlstra@chello.nl>
Subject: Re: [PATCH] v2 Re: Bug: Status/Summary of slashdot leap-second crash on new years 2008-2009
Date: Thu, 18 Jun 2009 23:58:07 +0100 [thread overview]
Message-ID: <1245365887.4616.417.camel@deadeye> (raw)
In-Reply-To: <4A3AC0FF.20808@nortel.com>
[-- Attachment #1: Type: text/plain, Size: 2641 bytes --]
On Thu, 2009-06-18 at 16:34 -0600, Chris Friesen wrote:
> Ben Hutchings wrote:
> > On Sat, 2009-01-03 at 12:01 -0600, Chris Adams wrote:
> >> Once upon a time, Duane Griffin <duaneg@dghda.com> said:
> >>> How about instead of a switch statement, assigning the message to a
> >>> variable and printing that. I.e. something like:
> >> Good point. Here's an updated version that also adds a comment to the
> >> xtime_lock definition about not using printk.
> >> --
> >> Chris Adams <cmadams@hiwaay.net>
> >> Systems and Network Administrator - HiWAAY Internet Services
> >> I don't speak for anybody but myself - that's enough trouble.
> >>
> >>
> >> From: Chris Adams <cmadams@hiwaay.net>
> >>
> >> The code to handle leap seconds printks an information message when the
> >> second is inserted or deleted. It does this while holding xtime_lock.
> >> However, printk wakes up klogd, and in some cases, the scheduler tries
> >> to get the current kernel time, trying to get xtime_lock (which results
> >> in a deadlock). This moved the printks outside of the lock. It also
> >> adds a comment to not use printk while holding xtime_lock.
> > [...]
> >
> > This patch doesn't seem to have gone anywhere. Was this bug fixed in
> > some other way or has it been forgotten?
>
> I'm interested in this as well...the current code still issues a
> printk() while holding the xtime_lock for writing. Is this allowed or not?
Having investigated further, I believe it has been safe since this
change made in 2.6.27 (which cleverly preempted the new year):
commit b845b517b5e3706a3729f6ea83b88ab85f0725b0
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri Aug 8 21:47:09 2008 +0200
printk: robustify printk
Avoid deadlocks against rq->lock and xtime_lock by deferring the klogd
wakeup by polling from the timer tick.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
> In addition, is it allowed for older kernels also or is Chris Adams'
> patch something that should get picked up for the 2.6.27 stable series?
Anything older than 2.6.27 appears to need a change along the lines of
the above-mentioned commit or Chris's patch. Note that this was not the
only case where printk() could be called under xtime_lock. For example,
in arch/alpha/kernel/time.c timer_interrupt() calls set_rtc_mmss() which
can call printk().
Ben.
--
Ben Hutchings
The generation of random numbers is too important to be left to chance.
- Robert Coveyou
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2009-06-18 22:58 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-02 19:25 Bug: Status/Summary of slashdot leap-second crash on new years 2008-2009 Linas Vepstas
2009-01-02 20:04 ` Diego Calleja
2009-01-02 20:25 ` Robert Hancock
2009-01-03 6:32 ` David Newall
2009-01-03 6:37 ` Ben Goodger
2009-01-04 8:43 ` David Newall
2009-01-04 9:00 ` Kyle Moffett
2009-01-04 10:03 ` David Newall
2009-01-04 11:13 ` david
2009-01-04 23:15 ` David Newall
2009-01-04 23:25 ` Chris Adams
2009-01-05 0:01 ` David Newall
2009-01-05 0:41 ` Alan Cox
2009-01-05 8:43 ` David Newall
2009-01-05 19:47 ` Alan Cox
2009-01-05 0:29 ` david
2009-01-04 23:37 ` David Newall
2009-01-05 1:05 ` david
2009-01-05 0:14 ` David Newall
2009-01-05 0:21 ` Ben Goodger
2009-01-05 6:34 ` David Newall
2009-01-05 23:03 ` Linas Vepstas
2009-01-05 0:44 ` Alan Cox
2009-01-05 5:48 ` Linas Vepstas
2009-01-05 14:33 ` Nick Andrew
2009-01-05 16:08 ` Linas Vepstas
2009-01-05 17:51 ` david
2009-01-05 17:42 ` Linas Vepstas
2009-01-06 2:27 ` john stultz-lkml
2009-01-06 4:53 ` Linas Vepstas
2009-01-06 5:00 ` Linas Vepstas
2009-01-06 19:40 ` [ntpwg] " M. Warner Losh
2009-01-06 19:50 ` M. Warner Losh
2009-01-07 3:50 ` Danny Mayer
2009-01-07 4:52 ` Linas Vepstas
2009-01-07 10:03 ` David Newall
2009-01-07 17:24 ` M. Warner Losh
2009-01-08 16:51 ` Magnus Danielson
2009-01-07 14:34 ` Danny Mayer
2009-01-07 15:42 ` Linas Vepstas
2009-01-07 19:23 ` Danny Mayer
2009-01-07 16:04 ` john stultz
2009-01-07 17:36 ` M. Warner Losh
2009-01-07 17:39 ` M. Warner Losh
2009-01-07 19:31 ` Alan Cox
2009-01-07 19:42 ` M. Warner Losh
2009-01-08 3:57 ` Danny Mayer
2009-01-08 4:42 ` M. Warner Losh
2009-01-08 10:48 ` Alan Cox
2009-01-08 10:56 ` Alan Cox
2009-01-08 22:22 ` David Mills
2009-01-08 15:02 ` M. Warner Losh
2009-01-08 18:57 ` Marshall Eubanks
2009-01-08 20:09 ` Steve Allen
2009-01-12 16:11 ` Pavel Machek
2009-01-12 17:07 ` [ntpwg] " M. Warner Losh
2009-01-12 21:45 ` Valdis.Kletnieks
2009-01-06 2:31 ` Nick Andrew
2009-01-06 1:59 ` David Newall
2009-01-06 2:18 ` Chris Adams
2009-01-06 2:51 ` Nick Andrew
2009-01-06 9:40 ` Alan Cox
2009-01-07 1:17 ` Nick Andrew
2009-01-07 9:37 ` Alan Cox
2009-01-07 9:46 ` David Newall
2009-01-07 9:54 ` Alan Cox
2009-01-07 10:18 ` David Newall
2009-01-07 10:52 ` Alan Cox
2009-01-07 13:45 ` David Newall
2009-01-07 14:10 ` Alan Cox
2009-01-07 14:36 ` David Newall
2009-01-07 15:40 ` Alan Cox
2009-01-10 9:46 ` David Newall
2009-01-07 22:13 ` Chris Adams
2009-01-07 13:33 ` Chris Adams
2009-01-07 13:37 ` Alan Cox
2009-01-07 14:12 ` David Newall
2009-01-07 14:09 ` David Newall
2009-01-07 21:42 ` Chris Adams
2009-01-04 11:35 ` Valdis.Kletnieks
2009-01-05 0:08 ` David Newall
2009-01-06 3:53 ` Valdis.Kletnieks
2009-01-04 17:20 ` Kyle Moffett
2009-01-03 7:00 ` Chris Adams
2009-01-04 8:41 ` David Newall
2009-01-02 20:29 ` Linas Vepstas
[not found] ` <8752a8760901021328t545a0327v58faebe1e921680a@mail.gmail.com>
2009-01-02 21:29 ` Ben Goodger
2009-01-03 0:21 ` Chris Adams
2009-01-03 2:23 ` Duane Griffin
2009-01-03 3:45 ` Linas Vepstas
2009-01-03 4:41 ` [PATCH] " Chris Adams
2009-01-03 4:52 ` Duane Griffin
2009-01-03 18:01 ` [PATCH] v2 " Chris Adams
2009-01-03 19:04 ` Duane Griffin
2009-01-03 20:01 ` Linas Vepstas
2009-06-08 2:18 ` Ben Hutchings
2009-06-18 22:34 ` Chris Friesen
2009-06-18 22:58 ` Ben Hutchings [this message]
2009-06-18 23:48 ` Chris Friesen
2009-01-06 2:21 ` john stultz-lkml
2009-01-06 2:25 ` Chris Adams
2009-01-06 4:35 ` Linas Vepstas
2009-01-03 3:49 ` Linas Vepstas
2009-01-03 4:02 ` Ben Goodger
2009-01-03 4:46 ` Duane Griffin
2009-01-03 4:50 ` Ben Goodger
2009-01-03 22:58 ` Jeffrey J. Kosowsky
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=1245365887.4616.417.camel@deadeye \
--to=ben@decadent.org.uk \
--cc=510478@bugs.debian.org \
--cc=a.p.zijlstra@chello.nl \
--cc=cfriesen@nortel.com \
--cc=cmadams@hiwaay.net \
--cc=linux-kernel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox