HKG15-302: Debugging ARM kernels using NMI/FIQ

Speaker: Daniel Thompson Date: February 11, 2015 ————————————————— ★ Session Summary ★ The Linux kernel can use non-maskable interrupts (NMI) to detect hard lockups, to help diagnose spin lock problems, to increase performance monitoring coverage and to make triggering KDB or KGDB more robust. Most ARM processors provide some means to simulate an NMI, either using Fast Interrupt reQuests (FIQ) or by carefully prioritizing normal interrupts, but the kernel was not capable of exploiting the hardware to provide improved debug features until very recently. This talk will describe how to take advantage of the new kernel features to help the kernel find your bugs for you. In doing so I will cover the historic uses of NMI on x86 Linux and of FIQ on Android and also provide an insight into the challenges of writing code that can pre-empt the scheduler (and indeed pretty much any other part of the kernel). We will also look at how TrustZone complicates the use of FIQ on armv7 and how the new architectural features introduced in armv8 can mitigate this. ————————————————– ★ Resources ★ Pathable: Presentation: Etherpad: ————————————————— ★ Event Details ★ Linaro Connect Hong Kong 2015 - #HKG15 February 9-13th, 2015 Regal Airport Hotel Hong Kong Airport —————————————————