Re: [PATCH 1/3] printk: Release console_sem after logbuf_lock

From: Hugh Dickins
Date: Thu Jun 09 2011 - 19:57:48 EST


On Thu, 9 Jun 2011, Andrew Morton wrote:
> On Thu, 09 Jun 2011 22:54:43 +0200
> Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> wrote:
>
> > On Thu, 2011-06-09 at 22:27 +0200, Ingo Molnar wrote:
> >
> > > > > @@ -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.
> > >
> > > Heh, here's what i told Peter two days ago when i saw that chunk:
> > >
> > > => Subject: printk: Release console_sem after logbuf_lock
> > > => i have some vague memories about some sort of complication in that area ...
> > > => but don't remember the specifics
> > > => only a 'there be dragons' mental marker
> >
> > Right, my reply was that I couldn't convince myself unlock order could
> > make a difference, but clearly I can easily have missed something
> > subtle.
>
> I wish I could find the darned patch. I have a file here
> no-console-lock-2.patch which was last diffed on October 7, 1999 but it
> has no changelog :(
>
> But this:
> http://lkml.indiana.edu/hypermail/linux/kernel/0109.2/0127.html is Sep
> 2001 and I have an earlier (unchangelogged) no-console-lock.patch diffed
> against 2.4.2 in March 2001.
>
> It's odd that the patch (and changelog) don't appear in my lkml
> archives. Sigh, http://www.youtube.com/watch?v=oO3YmT2d-8k

Does your mail below stir any useful memories?