Skip to content

nebaruzdin/interrupt-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

interrupt-modules

This is a set of Linux kernel modules that, with the help of pseudo-files in procfs, allow to view hardware and internal kernel data, that can be helpful in researching and debugging interrupts-related issues.

All modules work for both: x86 and x86_64 architectures. They were tested on Linux kernel version 4.4.5.

mp

Creates /proc/mp file that shows the contents of the Intel Multiprocessor Specification data structures.

Particularly, it can be used to determine the number of IO-APICs in the system and their base addresses. (Note that you can also use ACPI tables for the same purpose.) For instance:

	$ cat /proc/mp
	...
	Base MP Configuration Table:
	...
	0x104: 02 00 20 01 00 00 C0 FE
	0x10C: 02 02 20 01 00 10 C0 FE
	...

Here the first "02" byte identifies the IO-APIC entry. Last 4 bytes contain the IO-APIC base address in little-endian. So in this case the system has two IO-APICs with base addresses 0xFEC00000 and 0xFEC01000.

For details see:

ioapic

By default creates /proc/ioapic0 file that shows the contents of the IO-APIC interrupt routing table. Supports an optional second IO-APIC: if the second IO-APIC's base address is provided, the /proc/ioapic1 file is also created. IO-APICs' base addresses are set through module parameters:

	# insmod ioapic.ko ioapic0_base=0xFEC00000 ioapic1_base=0xFEC01000

Thus you can simultaneously view the contents of any two of the system IO-APICs.

For details see:

idt

Creates /proc/idt file that shows the contents of the Interrupt Descriptor Table (IDT).

Each rule from the IO-APIC's routing table can contain a number, known as an interrupt vector (IV), that refers to a specific entry in IDT. IDT entry, in turn, contains the location of an interrupt service routine (ISR) that will be executed for the given interrupt.

For details see:

About

Linux modules for viewing interrupts-related hardware and internal kernel data.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published