Powerful and Programmable Kernel Debugging with drgn

Kernel bugs that sneak past testing into production tend to be tricky, convoluted, and hard to reproduce. When investigating such bugs, you often want to explore various data structures, look for patterns, and check your assumptions. After falling victim to some...

Rethinking the kernel camera framework

Video4Linux (V4L2) has enabled hundreds of different multimedia devices, from TV tuners to the webcam that has accompanied you during the pandemic. Unfortunately, it has been neglected by vendors when they have implemented camera stacks for mobile devices. In this...

Test-driven kernel releases

Upstream Linux kernel testing has grown exponentially on many fronts during the past few years: kselftest is now more stable, KUnit gaining coverage and many out-of-tree test suites have kept growing. Many automated systems are running those tests continuously and...

The complete story of the in-kernel sloppy GPIO logic analyzer

You know the rules, right? You should not implement a logic analyzer in software because equidistant sampling points cannot be guaranteed. You should also not disable interrupts in your kernel code, and if you really need to, it should be as short as possible. And...