All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH next v4 00/15] printk: remove logbuf_lock
@ 2021-03-03 10:15 ` John Ogness
  0 siblings, 0 replies; 42+ messages in thread
From: John Ogness @ 2021-03-03 10:15 UTC (permalink / raw)
  To: Petr Mladek
  Cc: Sergey Senozhatsky, Sergey Senozhatsky, Steven Rostedt,
	Thomas Gleixner, linux-kernel, Jeff Dike, Richard Weinberger,
	Anton Ivanov, Andy Shevchenko, Thomas Meyer, linux-um,
	Miquel Raynal, Vignesh Raghavendra, linux-mtd, Kees Cook,
	Pavel Tatashin, Michael Ellerman, Benjamin Herrenschmidt,
	Paul Mackerras, Jason Wessel, Daniel Thompson, Douglas Anderson,
	Jordan Niethe, Alistair Popple, Ravi Bangoria, Nicholas Piggin,
	Madhavan Srinivasan, Mike Rapoport, Oleg Nesterov, Wei Li,
	Davidlohr Bueso, linuxppc-dev, kgdb-bugreport, K. Y. Srinivasan,
	Haiyang Zhang, Stephen Hemminger, Wei Liu, Anton Vorontsov,
	Colin Cross, Tony Luck, Christophe Leroy, Michael Kelley,
	linux-hyperv, Sumit Garg

Hello,

Here is v4 of a series to remove @logbuf_lock, exposing the
ringbuffer locklessly to both readers and writers. v3 is
here [0].

Since @logbuf_lock was protecting much more than just the
ringbuffer, this series clarifies and cleans up the various
protections using comments, lockless accessors, atomic types,
and a new finer-grained @syslog_lock.

Removing @logbuf_lock required changing the semantics of the
kmsg_dumper callback in order to work locklessly. This series
adjusts all kmsg_dumpers and users of the kmsg_dump_get_*()
functions for the new semantics.

This series is based on next-20210303.

Changes since v3:

- disable interrupts in the arch/um kmsg_dumper

- reduce CONSOLE_LOG_MAX value from 4096 back to 1024 to revert
  the increasd 3KiB static memory footprint

- change the kmsg_dumper() callback prototype back to how it
  was because some dumpers need the registered object for
  container_of() usage

- for kmsg_dump_get_line()/kmsg_dump_get_buffer() restrict the
  minimal allowed sequence number to the cleared sequence number

John Ogness

[0] https://lore.kernel.org/lkml/20210225202438.28985-1-john.ogness@linutronix.de/

John Ogness (15):
  um: synchronize kmsg_dumper
  mtd: mtdoops: synchronize kmsg_dumper
  printk: limit second loop of syslog_print_all
  printk: kmsg_dump: remove unused fields
  printk: refactor kmsg_dump_get_buffer()
  printk: consolidate kmsg_dump_get_buffer/syslog_print_all code
  printk: introduce CONSOLE_LOG_MAX
  printk: use seqcount_latch for clear_seq
  printk: use atomic64_t for devkmsg_user.seq
  printk: add syslog_lock
  printk: kmsg_dumper: remove @active field
  printk: introduce a kmsg_dump iterator
  printk: remove logbuf_lock
  printk: kmsg_dump: remove _nolock() variants
  printk: console: remove unnecessary safe buffer usage

 arch/powerpc/kernel/nvram_64.c |   8 +-
 arch/powerpc/xmon/xmon.c       |   6 +-
 arch/um/kernel/kmsg_dump.c     |  13 +-
 drivers/hv/vmbus_drv.c         |   4 +-
 drivers/mtd/mtdoops.c          |  17 +-
 fs/pstore/platform.c           |   5 +-
 include/linux/kmsg_dump.h      |  47 ++--
 kernel/debug/kdb/kdb_main.c    |  10 +-
 kernel/printk/internal.h       |   4 +-
 kernel/printk/printk.c         | 464 +++++++++++++++++----------------
 kernel/printk/printk_safe.c    |  27 +-
 11 files changed, 310 insertions(+), 295 deletions(-)

-- 
2.20.1


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

end of thread, other threads:[~2021-03-11 10:10 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-03 10:15 [PATCH next v4 00/15] printk: remove logbuf_lock John Ogness
2021-03-03 10:15 ` John Ogness
2021-03-03 10:15 ` John Ogness
2021-03-03 10:15 ` [PATCH next v4 01/15] um: synchronize kmsg_dumper John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-03 10:15 ` [PATCH next v4 02/15] mtd: mtdoops: " John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-11  9:50   ` Miquel Raynal
2021-03-11  9:50     ` Miquel Raynal
2021-03-03 10:15 ` [PATCH next v4 03/15] printk: limit second loop of syslog_print_all John Ogness
2021-03-03 10:15 ` [PATCH next v4 04/15] printk: kmsg_dump: remove unused fields John Ogness
2021-03-03 10:15 ` [PATCH next v4 05/15] printk: refactor kmsg_dump_get_buffer() John Ogness
2021-03-03 10:15 ` [PATCH next v4 06/15] printk: consolidate kmsg_dump_get_buffer/syslog_print_all code John Ogness
2021-03-03 10:15 ` [PATCH next v4 07/15] printk: introduce CONSOLE_LOG_MAX John Ogness
2021-03-03 13:35   ` Petr Mladek
2021-03-03 10:15 ` [PATCH next v4 08/15] printk: use seqcount_latch for clear_seq John Ogness
2021-03-03 10:15 ` [PATCH next v4 09/15] printk: use atomic64_t for devkmsg_user.seq John Ogness
2021-03-03 10:15 ` [PATCH next v4 10/15] printk: add syslog_lock John Ogness
2021-03-03 10:15 ` [PATCH next v4 11/15] printk: kmsg_dumper: remove @active field John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-03 10:15 ` [PATCH next v4 12/15] printk: introduce a kmsg_dump iterator John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-03 13:48   ` Petr Mladek
2021-03-03 13:48     ` Petr Mladek
2021-03-03 13:48     ` Petr Mladek
2021-03-03 10:15 ` [PATCH next v4 13/15] printk: remove logbuf_lock John Ogness
2021-03-03 10:15 ` [PATCH next v4 14/15] printk: kmsg_dump: remove _nolock() variants John Ogness
2021-03-03 10:15   ` John Ogness
2021-03-03 10:15 ` [PATCH next v4 15/15] printk: console: remove unnecessary safe buffer usage John Ogness
2021-03-03 13:18 ` lkml delivery: was: Re: [PATCH next v4 00/15] printk: remove logbuf_lock Petr Mladek
2021-03-03 13:18   ` Petr Mladek
2021-03-03 13:18   ` Petr Mladek
2021-03-03 14:34   ` Steven Rostedt
2021-03-03 14:34     ` Steven Rostedt
2021-03-03 14:34     ` Steven Rostedt
2021-03-03 15:34 ` Petr Mladek
2021-03-03 15:34   ` Petr Mladek
2021-03-03 15:34   ` Petr Mladek
2021-03-08 15:09   ` Petr Mladek
2021-03-08 15:09     ` Petr Mladek
2021-03-08 15:09     ` 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.