linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] printk for 5.10 (includes lockless ringbuffer)
@ 2020-10-12 14:49 Petr Mladek
  2020-10-13 23:49 ` pr-tracker-bot
  2020-10-14 14:16 ` Geert Uytterhoeven
  0 siblings, 2 replies; 12+ messages in thread
From: Petr Mladek @ 2020-10-12 14:49 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Sergey Senozhatsky, Steven Rostedt, John Ogness, Andy Shevchenko,
	Rasmus Villemoes, Peter Zijlstra, linux-kernel, Daniel Thompson

Linus,

please pull the latest printk changes from

  git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux tags/printk-for-5.10

============================

- Fully lockless ringbuffer implementation, including the support for
  continuous lines. It will allow to store and read messages in any
  situation wihtout the risk of deadlocks and without the need
  of temporary per-CPU buffers.

  The access is still serialized by logbuf_lock. It synchronizes few more
  operations, for example, temporary buffer for formatting the message,
  syslog and kmsg_dump operations. The lock removal is being discussed
  and should be ready for the next release.

  The continuous lines are handled exactly the same way as before
  to avoid regressions in user space. It means that they are appended
  to the last message when the caller is the same. Only the last
  message can be extended.

  The data ring includes plain text of the messages. Except for
  an integer at the beginning of each message that points back
  to the descriptor ring with other metadata.

  The dictionary has to stay. journalctl uses it to filter the log.
  It allows to show messages related to a given device. The dictionary
  values are stored in the descriptor ring with the other metadata.

  This is the first part of the printk rework as discussed at Plumbers 2019,
  see https://lore.kernel.org/r/87k1acz5rx.fsf@linutronix.de. The next
  big step will be handling consoles by kthreads during the normal
  system operation. It will require special handling of situations
  when the kthreads could not get scheduled, for example, early boot,
  suspend, panic.


Other changes:

+ Add John Ogness as a reviewer for printk subsystem. He is author of
  the rework and is familiar with the code and history.

+ Fix locking in serial8250_do_startup() to prevent lockdep report.

+ Few code cleanups.


=========================

The fully lockless ringbuffer code has been tested in linux-next
since Jul 10. The pr_cont() handling has been pushed in Sep 15.
I am not aware of any regression at the moment. But of course,
there will be some. And we are ready to work on the fixes.

----------------------------------------------------------------
Andy Shevchenko (1):
      kernel.h: Move oops_in_progress to printk.h

Gustavo A. R. Silva (1):
      printk: Use fallthrough pseudo-keyword

John Ogness (22):
      crash: add VMCOREINFO macro to define offset in a struct declared by typedef
      printk: add lockless ringbuffer
      Revert "printk: lock/unlock console only for new logbuf entries"
      printk: use the lockless ringbuffer
      printk: ringbuffer: support dataless records
      printk: reduce LOG_BUF_SHIFT range for H8300
      docs: vmcoreinfo: add lockless printk ringbuffer vmcoreinfo
      scripts/gdb: add utils.read_ulong()
      scripts/gdb: update for lockless printk ringbuffer
      printk: ringbuffer: fix setting state in desc_read()
      printk: ringbuffer: avoid memcpy() on state_var
      printk: ringbuffer: relocate get_data()
      printk: ringbuffer: add BLK_DATALESS() macro
      printk: ringbuffer: clear initial reserved fields
      printk: ringbuffer: change representation of states
      printk: ringbuffer: add finalization/extension support
      printk: reimplement log_cont using record extension
      printk: move printk_info into separate array
      printk: move dictionary keys to dev_printk_info
      printk: remove dict ring
      printk: avoid and/or handle record truncation
      printk: reduce setup_text_buf size to LOG_LINE_MAX

Petr Mladek (2):
      MAINTAIERS: Add John Ogness as printk reviewer
      Merge branch 'printk-rework' into for-linus

Randy Dunlap (1):
      kernel: printk: delete repeated words in comments

Sergey Senozhatsky (1):
      serial: 8250: change lock order in serial8250_do_startup()

 Documentation/admin-guide/kdump/gdbmacros.txt  |  159 +-
 Documentation/admin-guide/kdump/vmcoreinfo.rst |  131 +-
 MAINTAINERS                                    |    1 +
 drivers/base/core.c                            |   46 +-
 drivers/tty/serial/8250/8250_port.c            |    9 +-
 include/linux/crash_core.h                     |    3 +
 include/linux/debug_locks.h                    |    2 +-
 include/linux/dev_printk.h                     |    8 +
 include/linux/kernel.h                         |    1 -
 include/linux/printk.h                         |    8 +-
 init/Kconfig                                   |    3 +-
 kernel/printk/Makefile                         |    1 +
 kernel/printk/internal.h                       |    4 +-
 kernel/printk/printk.c                         | 1153 +++++++------
 kernel/printk/printk_ringbuffer.c              | 2083 ++++++++++++++++++++++++
 kernel/printk/printk_ringbuffer.h              |  382 +++++
 kernel/printk/printk_safe.c                    |    2 +-
 scripts/gdb/linux/dmesg.py                     |  147 +-
 scripts/gdb/linux/utils.py                     |    7 +
 19 files changed, 3416 insertions(+), 734 deletions(-)
 create mode 100644 kernel/printk/printk_ringbuffer.c
 create mode 100644 kernel/printk/printk_ringbuffer.h

^ permalink raw reply	[flat|nested] 12+ messages in thread
* [GIT PULL] printk for 5.10 (includes lockless ringbuffer)
@ 2020-10-16 15:05 Petr Mladek
  2020-10-16 19:54 ` pr-tracker-bot
  0 siblings, 1 reply; 12+ messages in thread
From: Petr Mladek @ 2020-10-16 15:05 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Sergey Senozhatsky, Steven Rostedt, John Ogness, Andy Shevchenko,
	Rasmus Villemoes, Peter Zijlstra, linux-kernel, Daniel Thompson

Linus,

please pull one printk hot-fix from

  git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux tags/printk-for-5.10-fixup

----------------------------------------------------------------

- Prevent overflow in the new lockless ringbuffer.

----------------------------------------------------------------
Petr Mladek (1):
      printk: ringbuffer: Wrong data pointer when appending small string

 kernel/printk/printk_ringbuffer.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

^ permalink raw reply	[flat|nested] 12+ messages in thread
* [GIT PULL] printk for 5.10 (includes lockless ringbuffer)
@ 2020-11-27 13:47 Petr Mladek
  2020-11-27 19:19 ` pr-tracker-bot
  0 siblings, 1 reply; 12+ messages in thread
From: Petr Mladek @ 2020-11-27 13:47 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: Sergey Senozhatsky, Steven Rostedt, John Ogness, linux-kernel,
	Kefeng Wang

Linus,

please pull a printk hotfix from

  git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux.git tags/printk-for-5.10-rc6-fixup

=========================

- Do not lose trailing newline in pr_cont() calls.

- Two trivial fixes: dead-store and a config description.

=========================

PS: I do not have much experience with pushing fixes this late
    in the release cycle.

    I push the important fix even before it has reached linux-next.
    The fix is straightforward and trivial. And it looks better to have
    it in rc6 than in the potentially last one rc7.

    Also I added the two trivial fixes that I queued few weeks ago.
    They were trivial enough to get pushed at any time. And they
    fixed something that was introduced in 5.10-rc1.

    Feel free to postpone this for rc7 or take only the one fix
    of the newlines handling.

----------------------------------------------------------------
John Ogness (1):
      printk: finalize records with trailing newlines

Lukas Bulwahn (1):
      printk: remove unneeded dead-store assignment

Paul Menzel (1):
      init/Kconfig: Fix CPU number in LOG_CPU_MAX_BUF_SHIFT description

Petr Mladek (1):
      Merge branch 'for-5.10-pr_cont-fixup' into for-linus

 init/Kconfig                      | 2 +-
 kernel/printk/printk.c            | 4 ++--
 kernel/printk/printk_ringbuffer.c | 2 --
 3 files changed, 3 insertions(+), 5 deletions(-)

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

end of thread, other threads:[~2020-11-28  0:41 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-12 14:49 [GIT PULL] printk for 5.10 (includes lockless ringbuffer) Petr Mladek
2020-10-13 23:49 ` pr-tracker-bot
2020-10-14 14:16 ` Geert Uytterhoeven
2020-10-14 14:58   ` Rasmus Villemoes
2020-10-14 15:07     ` Geert Uytterhoeven
2020-10-15  8:03     ` Petr Mladek
2020-10-14 20:55   ` John Ogness
2020-10-15  7:52     ` Petr Mladek
2020-10-16 15:05 Petr Mladek
2020-10-16 19:54 ` pr-tracker-bot
2020-11-27 13:47 Petr Mladek
2020-11-27 19:19 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).