Explore the complexities and challenges of the printk() function in Linux kernel development through this in-depth conference talk from the Linux Plumbers Conference. Dive into the history of printk(), understand the recent major rework, and examine unsolved issues like fully synchronous console writing. Learn about lockless ring buffers, memory barriers, and NMI-safe synchronization as speaker John Ogness from Linutronix GmbH discusses proposed solutions and future directions for this critical kernel component. Gain insights into the tug-of-war between different requirements, the implementation of ringbuffers and per-console kthreads, and the handling of emergency messages in this comprehensive exploration of printk()'s intricacies.
Overview
Syllabus
Intro
Requirements
A Brief History of printk
Open Issues
Main Issue: Tug-of-War
Ringbuffer (cpu-lock)
Per-Console kthreads
Atomic Consoles
Emergency Messages
Status (looking forward)
Taught by
Linux Plumbers Conference