public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] printk vs rq->lock and xtime lock
@ 2008-03-24 12:24 Peter Zijlstra
  2008-03-24 12:24 ` [PATCH 1/2] printk_nowakeup() Peter Zijlstra
                   ` (3 more replies)
  0 siblings, 4 replies; 53+ messages in thread
From: Peter Zijlstra @ 2008-03-24 12:24 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton, Ingo Molnar, Thomas Gleixner,
	Marcin Slusarz
  Cc: LKML, Peter Zijlstra

Hi Linus,

As to the regression reported by Marcin; what happens is that we invoke
printk() while holding the xtime lock for writing. printk() will call
wake_up_klogd() which tries to enqueue klogd on some rq.

The known deadlock here is calling printk() while holding rq->lock, which
would then try to recusively lock the rq again when trying to wake klogd.

The new deadlock is due to task enqueues setting an hrtimer, which requires
reading the time, which will result in a live-lock when the printk() call-
site is holding the xtime lock for writing.

Thomas would like to preserve the printk() information if possible, hence my
proposal of printk_nowakeup(). It will do everything printk() normally does,
except ommit to wake up of klogd. The call is explicitly not EXPORTed so that
its use is confined to core kernel code.

Marcin, could you please test these two patches to confirm they do indeed
solve your issue as well?

Peter




^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2008-08-20 13:41 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-24 12:24 [PATCH 0/2] printk vs rq->lock and xtime lock Peter Zijlstra
2008-03-24 12:24 ` [PATCH 1/2] printk_nowakeup() Peter Zijlstra
2008-03-24 12:24 ` [PATCH 2/2] time: xtime lock vs printk Peter Zijlstra
2008-03-24 14:21   ` Daniel Walker
2008-03-24 14:31 ` [PATCH 0/2] printk vs rq->lock and xtime lock Marcin Slusarz
2008-03-24 17:58 ` Linus Torvalds
2008-03-24 18:15   ` Peter Zijlstra
2008-03-24 18:57     ` Andrew Morton
2008-08-08 13:30       ` Peter Zijlstra
2008-08-08 13:46         ` Peter Zijlstra
2008-08-08 16:41         ` Linus Torvalds
2008-08-08 17:10           ` Peter Zijlstra
2008-08-08 17:25             ` Linus Torvalds
2008-08-08 17:40               ` Peter Zijlstra
2008-08-08 17:48                 ` Linus Torvalds
2008-08-08 18:14                   ` [PATCH] printk: robustify printk Peter Zijlstra
2008-08-08 18:30                     ` Linus Torvalds
2008-08-08 18:33                       ` Peter Zijlstra
2008-08-08 19:14                     ` Andrew Morton
2008-08-08 19:21                       ` Peter Zijlstra
2008-08-08 19:37                         ` Andrew Morton
2008-08-08 19:49                           ` Peter Zijlstra
2008-08-08 20:32                           ` Paul E. McKenney
2008-08-08 20:37                             ` Peter Zijlstra
2008-08-08 20:46                               ` Andrew Morton
2008-08-08 20:57                                 ` Linus Torvalds
2008-08-08 21:13                                   ` Andrew Morton
2008-08-08 20:50                               ` Steven Rostedt
2008-08-08 19:47                         ` Peter Zijlstra
2008-08-11 10:45                           ` Ingo Molnar
2008-08-11 11:03                             ` Andi Kleen
2008-08-11 11:22                               ` Peter Zijlstra
2008-08-11 11:42                                 ` Andi Kleen
2008-08-11 14:15                                   ` Valdis.Kletnieks
2008-08-11 14:29                                     ` Andi Kleen
2008-08-11 14:55                                       ` Steven Rostedt
2008-08-11 12:02                                 ` Ingo Molnar
2008-08-11 12:14                                   ` Andi Kleen
2008-08-11 11:04                             ` Peter Zijlstra
2008-08-11 11:51                               ` Ingo Molnar
2008-08-11 12:36                                 ` Ingo Molnar
2008-08-20 12:40                                 ` Jiri Kosina
2008-08-20 12:43                                   ` Peter Zijlstra
2008-08-20 13:40                                     ` Ingo Molnar
2008-08-11 16:09                               ` Paul E. McKenney
2008-08-11 13:22                             ` Paul E. McKenney
2008-08-08 20:30                       ` Paul E. McKenney
2008-08-08 20:20                     ` Paul E. McKenney
2008-08-08 21:35                     ` Andi Kleen
2008-08-08 23:02                     ` David Miller
2008-08-09  0:18                       ` Paul E. McKenney
2008-08-08 17:52                 ` [PATCH 0/2] printk vs rq->lock and xtime lock Steven Rostedt
2008-03-24 18:16   ` Linus Torvalds

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox