[x86] Linux Kernel Interrupt Delivery Configuration: How the Linux Kernel Interacts...
summary
Kernel 6.7 example shows how Linux chooses CPUs and vectors, allocates IRQ numbers (low bound often 24), and updates IOAPIC/MSI tables so interrupts land on the chosen CPU; the gdb/crash demo reads IDT, IOAPIC routing entries and MSI vector table to prove the configuration. Request_irq uses the SP IRQ maple tree and a vector matrix that picks the CPU with the most available vectors (example picks vector 32); updates are shown applied and working.
AI-written summary · about
chapters (11)
- 0:00Interrupt delivery in Linux
- 2:11Linux kernel interrupt handling
- 4:21IDT configuration and exceptions
- 9:53Pin-based vs MSI interrupts
- 13:09Kernel interrupt structures init
- 16:47Best CPU and vector number
- 21:38MSI interrupt delivery config
- 25:15IRQ vector vs hardware IRQ
- 27:51IRQ number allocation
- 30:47Finding MSI vector number
- 32:31Updating MSI vector table
related talks
42mUnderstanding Linux Interrupt Subsystem
52mHow Dealing with Modern Interrupt Architectures can Affect Your Sanity
01h 42mIRQs: the Hard, the Soft, the Threaded and the Preemptible
47mWhat Every Driver Developer Should Know about RT
44mGetting Around to It: Deferred Work in the Linux Kernel
42mProtecting the Linux Kernel from Confidential Computing Threats in Virtual Environments
08mBringing Energy-Aware Scheduling to x86
20mRISC-V irqbypass with KVM
