All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/3] printk: Deadlock in NMI regression
@ 2018-06-27 14:08 Petr Mladek
  2018-06-27 14:08 ` [PATCH v2 1/3] printk: Split the code for storing a message into the log buffer Petr Mladek
                   ` (5 more replies)
  0 siblings, 6 replies; 20+ messages in thread
From: Petr Mladek @ 2018-06-27 14:08 UTC (permalink / raw)
  To: Sergey Senozhatsky, Steven Rostedt
  Cc: Peter Zijlstra, Tetsuo Handa, Sergey Senozhatsky, linux-kernel,
	stable, Petr Mladek

The commit 719f6a7040f1bdaf96 ("printk: Use the main logbuf in NMI
when logbuf_lock is available") brought back the possible deadlocks
in printk() and NMI.

This is rework of the proposed fix, see
https://lkml.kernel.org/r/20180606111557.xzs6l3lkvg7lq3ts@pathway.suse.cz

I realized that we could rather easily move the check to vprintk_func()
and still avoid any race. I believe that this is a win-win solution.


Changes against v1:

  + Move the check from vprintk_emit() to vprintk_func()
  + More straightforward commit message
  + Fix build with CONFIG_PRINTK_NMI disabled


Petr Mladek (3):
  printk: Split the code for storing a message into the log buffer
  printk: Create helper function to queue deferred console handling
  printk/nmi: Prevent deadlock when accessing the main log buffer in NMI

 include/linux/printk.h      |  4 ++++
 kernel/printk/internal.h    |  9 ++++++-
 kernel/printk/printk.c      | 57 +++++++++++++++++++++++++++-----------------
 kernel/printk/printk_safe.c | 58 +++++++++++++++++++++++++++++----------------
 kernel/trace/trace.c        |  4 +++-
 lib/nmi_backtrace.c         |  3 ---
 6 files changed, 87 insertions(+), 48 deletions(-)

-- 
2.13.7


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

end of thread, other threads:[~2018-07-09 13:28 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-27 14:08 [PATCH v2 0/3] printk: Deadlock in NMI regression Petr Mladek
2018-06-27 14:08 ` [PATCH v2 1/3] printk: Split the code for storing a message into the log buffer Petr Mladek
2018-06-28  2:10   ` Sergey Senozhatsky
2018-06-27 14:08 ` [PATCH v2 2/3] printk: Create helper function to queue deferred console handling Petr Mladek
2018-06-28  2:16   ` Sergey Senozhatsky
2018-06-28  2:19     ` Sergey Senozhatsky
2018-06-27 14:16 ` [PATCH v2 0/3] printk: Deadlock in NMI regression Sergey Senozhatsky
2018-06-27 14:23   ` Sergey Senozhatsky
2018-06-27 14:34   ` Petr Mladek
2018-06-28  9:08     ` Sergey Senozhatsky
2018-06-27 14:20 ` [PATCH v2 3/3] printk/nmi: Prevent deadlock when accessing the main log buffer in NMI Petr Mladek
2018-06-28  2:25   ` Sergey Senozhatsky
2018-06-28  9:41     ` Petr Mladek
2018-06-29  1:47       ` Sergey Senozhatsky
2018-06-29  7:25         ` Petr Mladek
2018-06-29 10:01           ` Sergey Senozhatsky
2018-06-28  2:39 ` [PATCH v2 0/3] printk: Deadlock in NMI regression Sergey Senozhatsky
2018-06-28 10:54   ` Petr Mladek
2018-06-29  1:52     ` Sergey Senozhatsky
2018-07-09 13:27 ` Petr Mladek

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.