An Oops on an ARM Linux system and using netconsole
To get the most out of this section, I'd definitely recommend you be at least a little conversant with the processor ABI conventions (especially stuff such as function calls, parameter passing, and return values) for the processor your code's running upon. So, here, it's for the ARM32. Again, do review the basics that we covered in Chapter 4, Debug via Instrumentation – Kprobes, in the section, Understanding the basics of the Application Binary Interface (ABI).
Here, our test environment is a Raspberry Pi 0W running Raspbian 10 (Buster) with the standard 5.10.17+ kernel. This popular prototyping (and product) board has the Broadcom BCM2835 System on Chip (SoC), which internally sports a single ARM32 CPU core for this board.
We cross-compile and run our usual test case on the device: our oops_tryv2
module case 3 (passing the bug_in_workq=yes
parameter). It does cause an Oops, of course, but the bug was severe...