lkml.org 
[lkml]   [2011]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/3] printk: Release console_sem after logbuf_lock
On Thu, 09 Jun 2011 15:06:48 +0200
Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

> Release console_sem after unlocking the logbuf_lock so that we don't
> generate wakeups while holding logbuf_lock. This avoids some lock
> inversion troubles once we remove the lockdep_off bits between
> logbuf_lock and rq->lock (prints while holding rq->lock vs doing
> wakeups while holding logbuf_lock).
>
> There's of course still an actual deadlock where the printk()s under
> rq->lock will issue a wakeup from the up() call.
>
> ...
>
> @@ -1271,8 +1273,8 @@ void console_unlock(void)
> if (unlikely(exclusive_console))
> exclusive_console = NULL;
>
> - up(&console_sem);
> spin_unlock_irqrestore(&logbuf_lock, flags);
> + up(&console_sem);
> if (wake_klogd)
> wake_up_klogd();
> }

I have a horrible feeling that I put the up() inside logbuf_lock for
Special And Cunning Reasons. But I'm struggling to work out what they
might have been and my archives only go back to October 2000(!).

Hate it when that happens.


\
 
 \ /
  Last update: 2011-06-09 22:09    [W:0.159 / U:1.208 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site