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. -ss