Explore the complexities and challenges of the printk() function in this 57-minute conference talk from the Linux Plumbers Conference. Dive into the history, recent major rework, and ongoing issues surrounding this crucial kernel function. Learn why printk() is so complicated and why finding a reliable solution for sending detailed information to users remains challenging, especially in real-time systems. Examine the details of the recent rework and its impact on solving various problems. Discover the remaining unsolved issues, such as fully synchronous console writing, and review proposed solutions for moving forward. Gain insights into lockless ring buffers, memory barriers, and NMI-safe synchronization. Follow the speaker, John Ogness from Linutronix GmbH, as he covers topics including printk requirements, open issues, the main "tug-of-war" problem, ringbuffer implementations, atomic consoles, and emergency messages.
Overview
Syllabus
Intro
Requirements
A Brief History of printk
Open Issues
Main Issue: Tug-of-War
Ringbuffer (cpu-lock)
Ringbuffer (lockless)
Atomic Consoles
Emergency Messages
Status (looking forward)
Taught by
Linux Plumbers Conference