]> git.baikalelectronics.ru Git - kernel.git/commit
printk: use the lockless ringbuffer
authorJohn Ogness <john.ogness@linutronix.de>
Thu, 9 Jul 2020 13:23:44 +0000 (15:29 +0206)
committerPetr Mladek <pmladek@suse.com>
Fri, 10 Jul 2020 06:48:55 +0000 (08:48 +0200)
commitc797dba12ee1e394121789537777bfef0b702e2a
treeb25611c8c4ae2f772ced56d89afaa011a8171869
parentdd6f426faa64f7f608352f7ee9b73b3006d1a12e
printk: use the lockless ringbuffer

Replace the existing ringbuffer usage and implementation with
lockless ringbuffer usage. Even though the new ringbuffer does not
require locking, all existing locking is left in place. Therefore,
this change is purely replacing the underlining ringbuffer.

Changes that exist due to the ringbuffer replacement:

- The VMCOREINFO has been updated for the new structures.

- Dictionary data is now stored in a separate data buffer from the
  human-readable messages. The dictionary data buffer is set to the
  same size as the message buffer. Therefore, the total required
  memory for both dictionary and message data is
  2 * (2 ^ CONFIG_LOG_BUF_SHIFT) for the initial static buffers and
  2 * log_buf_len (the kernel parameter) for the dynamic buffers.

- Record meta-data is now stored in a separate array of descriptors.
  This is an additional 72 * (2 ^ (CONFIG_LOG_BUF_SHIFT - 5)) bytes
  for the static array and 72 * (log_buf_len >> 5) bytes for the
  dynamic array.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20200709132344.760-5-john.ogness@linutronix.de
kernel/printk/printk.c