October 2017
Intermediate to advanced
354 pages
9h 28m
English
Historically, for most architectures, interrupt handlers shared the kernel stack of the running process that was interrupted. As discussed in the first chapter, the process kernel stack is typically 8 KB for 32-bit architectures and 16 KB for 64-bit architectures. A fixed kernel stack might not always be enough for kernel work and IRQ processing routines, resulting in judicious allocation of data both by kernel code and interrupt handlers. To address this, the kernel build (for a few architectures) is configured by default to set up an additional per-CPU hard IRQ stack for use by interrupt handlers, and a per-CPU soft IRQ stack for use by software interrupt code. Following are the x86-64 bit architecture-specific stack declarations ...