Re: [PATCH v2] lock/semaphore: Avoid an unnecessary deadlock within up()

From: Sergey Senozhatsky
Date: Wed Feb 03 2016 - 03:29:22 EST


On (02/03/16 17:12), Byungchul Park wrote:
> On Wed, Feb 03, 2016 at 04:42:23PM +0900, Sergey Senozhatsky wrote:
> > On (02/03/16 08:28), Ingo Molnar wrote:
> > [..]
> > > So why not move printk away from semaphores? Semaphores are classical constructs
> > > that have legacies and are somewhat non-obvious to use, compared to modern,
> > > simpler locking primitives. I'd not touch their implementation, unless we are
> > > absolutely sure this is a safe optimization.
> >
> > semaphore's spin_lock is not the only spin lock that printk acquires. it also takes the
> > logbuf_lock (and different locks in console drivers (up to console driver)).
> >
> > Jan Kara posted a patch that offloads printing job (console_trylock()-console_unlock())
> > from printk() call (when printk can offload it). so semaphore and console driver's locks
> > will go away (mostly) with Jan's patch. logbug spin_lock, however, will stay.
>
> It sounds good. Could you teach me how to see the patch by Jan?

sure,

https://lkml.org/lkml/2015/10/26/16
and
http://marc.info/?l=linux-kernel&m=145079206822115

-ss