• Linus Torvalds's avatar
    Merge tag 'printk-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 537e62c8
    Linus Torvalds authored
    Pull printk updates from Petr Mladek:
    
     - Offload writing printk() messages on consoles to per-console
       kthreads.
    
       It prevents soft-lockups when an extensive amount of messages is
       printed. It was observed, for example, during boot of large systems
       with a lot of peripherals like disks or network interfaces.
    
       It prevents live-lockups that were observed, for example, when
       messages about allocation failures were reported and a CPU handled
       consoles instead of reclaiming the memory. It was hard to solve even
       with rate limiting because it would need to take into account the
       amount of messages and the speed of all consoles.
    
       It is a must to have for real time. Otherwise, any printk() might
       break latency guarantees.
    
       The per-console kthreads allow to handle each console on its own
       speed. Slow consoles do not longer slow down faster ones. And
       printk() does not longer unpredictably slows down various code paths.
    
       There are situations when the kthreads are either not available or
       not reliable, for example, early boot, suspend, or panic. In these
       situations, printk() uses the legacy mode and tries to handle
       consoles immediately.
    
     - Add documentation for the printk index.
    
    * tag 'printk-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
      printk, tracing: fix console tracepoint
      printk: remove @console_locked
      printk: extend console_lock for per-console locking
      printk: add kthread console printers
      printk: add functions to prefer direct printing
      printk: add pr_flush()
      printk: move buffer definitions into console_emit_next_record() caller
      printk: refactor and rework printing logic
      printk: add con_printk() macro for console details
      printk: call boot_delay_msec() in printk_delay()
      printk: get caller_id/timestamp after migration disable
      printk: wake waiters for safe and NMI contexts
      printk: wake up all waiters
      printk: add missing memory barrier to wake_up_klogd()
      printk: cpu sync always disable interrupts
      printk: rename cpulock functions
      printk/index: Printk index feature documentation
      MAINTAINERS: Add printk indexing maintainers on mention of printk_index
    537e62c8
tree_stall.h 31.3 KB