public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH printk v2 0/8] wire up nbcon consoles
@ 2023-07-28  0:02 John Ogness
  2023-07-28  0:02 ` [PATCH printk v2 1/8] printk: Add non-BKL (nbcon) console basic infrastructure John Ogness
                   ` (8 more replies)
  0 siblings, 9 replies; 37+ messages in thread
From: John Ogness @ 2023-07-28  0:02 UTC (permalink / raw)
  To: Petr Mladek
  Cc: Sergey Senozhatsky, Steven Rostedt, Thomas Gleixner, linux-kernel,
	Greg Kroah-Hartman

Hi,

This is v2 of a series to introduce the new non-BKL (nbcon)
consoles. This series is only a subset of the original
v1 [0]. In particular, this series represents patches 5-10 of
the v1 series. For information about the motivation of the
atomic consoles, please read the cover letter of v1.

This series focuses on wiring up the printk subsystem to
be able to use the nbcon consoles and implement their ownership
interfaces and rules. This series does _not_ include threaded
printing, atomic printing regions, or nbcon drivers. Those
features will be added in separate follow-up series.

There is not much that has _not_ changed since v1. Here is an
attempt to list the changes:

- new naming:
    OLD         NEW
    bkl         legacy
    nobkl       nbcon
    CON_NO_BKL  CON_NBCON
    cons_()     nbcon_()

- rather than allocating context objects per-cpu, per-prio, and
  per-console, require the context object to sit on the stack

- serialize nbcon consoles with the console_lock until there
  are no more boot consoles registered

- update @have_boot_console and @have_legacy_console on
  unregister_console()

- only use @nbcon_seq for the nbcon sequence counter

- avoid console lock in __pr_flush() if there are only nbcon
  consoles

- use only 1 state variable instead of CUR and REQ states

- replace saved states in the context with boolean flags

- use atomic long for nbcon_seq, expanded as needed on 32bit
  systems

- instead of the owner performing the handover, now the owner
  gives up ownership and the waiter takes ownership

- remove unnecessary state and context fields

- simplify sequence tracking by only allowing incrementing
  (positive) updates

- simplify buffer handling by only allowing hostile takeovers
  in the single panic context

- remove early buffer handling because there is no early window

- carefully consider individual state bits rather than
  performing general set compares

- split the code for various locking strategies based on
  complete methods rather than functional pieces

John Ogness

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

John Ogness (1):
  printk: Provide debug_store() for nbcon debugging

Thomas Gleixner (7):
  printk: Add non-BKL (nbcon) console basic infrastructure
  printk: nbcon: Add acquire/release logic
  printk: nbcon: Add buffer management
  printk: nbcon: Add sequence handling
  printk: nbcon: Add ownership state functions
  printk: nbcon: Add emit function and callback function for atomic
    printing
  printk: nbcon: Add functions for drivers to mark unsafe regions

 include/linux/console.h      | 132 +++++
 kernel/printk/Makefile       |   2 +-
 kernel/printk/internal.h     |  29 ++
 kernel/printk/printk.c       | 156 ++++--
 kernel/printk/printk_nbcon.c | 955 +++++++++++++++++++++++++++++++++++
 5 files changed, 1243 insertions(+), 31 deletions(-)
 create mode 100644 kernel/printk/printk_nbcon.c


base-commit: 132a90d1527fedba2d95085c951ccf00dbbebe41
-- 
2.39.2


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

end of thread, other threads:[~2023-09-08 14:48 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-28  0:02 [PATCH printk v2 0/8] wire up nbcon consoles John Ogness
2023-07-28  0:02 ` [PATCH printk v2 1/8] printk: Add non-BKL (nbcon) console basic infrastructure John Ogness
2023-07-28 14:47   ` Petr Mladek
2023-07-28 20:51     ` John Ogness
2023-07-31 15:39       ` Petr Mladek
2023-07-31 20:39         ` John Ogness
2023-08-01 10:35           ` Petr Mladek
2023-07-28  0:02 ` [PATCH printk v2 2/8] printk: Provide debug_store() for nbcon debugging John Ogness
2023-07-28  9:52   ` John Ogness
2023-07-28 15:22   ` Petr Mladek
2023-07-28 21:01     ` John Ogness
2023-07-31 15:43       ` Petr Mladek
2023-07-28  0:02 ` [PATCH printk v2 3/8] printk: nbcon: Add acquire/release logic John Ogness
2023-08-09 10:20   ` Petr Mladek
2023-08-29  9:43     ` John Ogness
2023-08-09 12:44   ` hostile takeover: " Petr Mladek
2023-08-29 10:22     ` John Ogness
2023-09-07 15:40       ` Petr Mladek
2023-09-08 14:48         ` John Ogness
2023-07-28  0:02 ` [PATCH printk v2 4/8] printk: nbcon: Add buffer management John Ogness
2023-08-09 14:06   ` Petr Mladek
2023-07-28  0:02 ` [PATCH printk v2 5/8] printk: nbcon: Add sequence handling John Ogness
2023-07-28  1:33   ` kernel test robot
2023-07-28  9:00     ` John Ogness
2023-08-10  9:28   ` Petr Mladek
2023-08-29 11:51     ` John Ogness
2023-07-28  0:02 ` [PATCH printk v2 6/8] printk: nbcon: Add ownership state functions John Ogness
2023-08-10 12:56   ` Petr Mladek
2023-08-29 12:23     ` John Ogness
2023-07-28  0:02 ` [PATCH printk v2 7/8] printk: nbcon: Add emit function and callback function for atomic printing John Ogness
2023-08-11 13:37   ` Petr Mladek
2023-08-29 13:08     ` John Ogness
2023-07-28  0:02 ` [PATCH printk v2 8/8] printk: nbcon: Add functions for drivers to mark unsafe regions John Ogness
2023-08-11 13:50   ` Petr Mladek
2023-08-29 13:13     ` John Ogness
2023-08-11 13:56 ` [PATCH printk v2 0/8] wire up nbcon consoles Petr Mladek
2023-08-29 13:21   ` John Ogness

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox