linux-stable/arch/x86/kernel
Joe Korty 38e760a133 x86: expand /proc/interrupts to include missing vectors, v2
Add missing IRQs and IRQ descriptions to /proc/interrupts.

/proc/interrupts is most useful when it displays every IRQ vector in use by
the system, not just those somebody thought would be interesting.

This patch inserts the following vector displays to the i386 and x86_64
platforms, as appropriate:

	rescheduling interrupts
	TLB flush interrupts
	function call interrupts
	thermal event interrupts
	threshold interrupts
	spurious interrupts

A threshold interrupt occurs when ECC memory correction is occuring at too
high a frequency.  Thresholds are used by the ECC hardware as occasional
ECC failures are part of normal operation, but long sequences of ECC
failures usually indicate a memory chip that is about to fail.

Thermal event interrupts occur when a temperature threshold has been
exceeded for some CPU chip.  IIRC, a thermal interrupt is also generated
when the temperature drops back to a normal level.

A spurious interrupt is an interrupt that was raised then lowered by the
device before it could be fully processed by the APIC.  Hence the apic sees
the interrupt but does not know what device it came from.  For this case
the APIC hardware will assume a vector of 0xff.

Rescheduling, call, and TLB flush interrupts are sent from one CPU to
another per the needs of the OS.  Typically, their statistics would be used
to discover if an interrupt flood of the given type has been occuring.

AK: merged v2 and v4 which had some more tweaks
AK: replace Local interrupts with Local timer interrupts
AK: Fixed description of interrupt types.

[ tglx: arch/x86 adaptation ]
[ mingo: small cleanup ]

Signed-off-by: Joe Korty <joe.korty@ccur.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Tim Hockin <thockin@hockin.org>
Cc: Andi Kleen <ak@suse.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-10-17 20:16:53 +02:00
..
acpi Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
cpu x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
cpufreq x86_64: move kernel/cpufreq 2007-10-11 11:17:06 +02:00
.gitignore i386: move kernel 2007-10-11 11:17:01 +02:00
alternative.c x86: misc. constifications 2007-10-17 20:16:08 +02:00
aperture_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
apic_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apic_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
apm_32.c Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
asm-offsets.c i386: move kernel 2007-10-11 11:17:01 +02:00
asm-offsets_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
asm-offsets_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
audit_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
bootflag.c i386: move kernel 2007-10-11 11:17:01 +02:00
bugs_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpuid.c i386: simplify smp_call_function_single() call sequence in cpuid 2007-10-17 20:16:19 +02:00
crash_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
crash_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
crash_dump_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash_dump_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
doublefault_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
e820_64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
early-quirks_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
early_printk.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
efi_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
efi_stub_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
entry_32.S lockdep: i386: connect the sysexit hook 2007-10-11 22:11:12 +02:00
entry_64.S x86: return correct error code from child_rip in x86_64 entry.S 2007-10-17 20:15:29 +02:00
genapic_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
genapic_flat_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
geode_32.c x86: Geode Multi-Function General Purpose Timers support 2007-10-12 23:04:06 +02:00
head64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
head_32.S x86: prepare page allocator for high allocations on PAGEALLOC=y 2007-10-17 20:15:38 +02:00
head_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
hpet.c x86: HPET force enable for ICH5 2007-10-12 23:04:24 +02:00
i386_ksyms_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
i387_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i387_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8237.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8253.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8259_32.c x86: clean up struct irqaction initializers 2007-10-17 20:16:06 +02:00
i8259_64.c x86: more struct irqaction initializer cleanups 2007-10-17 20:16:07 +02:00
init_task_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
init_task_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
io_apic_32.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
io_apic_64.c x86: kmalloc + memset conversion to kzalloc 2007-10-17 20:16:18 +02:00
ioport_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ioport_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
irq_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
k8.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
kprobes_32.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kprobes_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ldt_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ldt_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
machine_kexec_32.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
machine_kexec_64.c add-vmcore: add a prefix "VMCOREINFO_" to the vmcoreinfo macros 2007-10-17 08:42:54 -07:00
Makefile x86_64: move kernel 2007-10-11 11:17:24 +02:00
Makefile_32 x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
Makefile_64 x86_64: remove now unused code 2007-10-12 23:04:23 +02:00
mca_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
mce_64.c x86: clean up mce= argument parsing slightly 2007-10-17 20:16:32 +02:00
mce_amd_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mce_intel_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
mfgpt_32.c x86: Geode MFGPT clock event device support 2007-10-12 23:04:06 +02:00
microcode.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
module_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
mpparse_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
mpparse_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
msr.c i386: Misc cpuinit annotations 2007-10-17 20:16:00 +02:00
nmi_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
nmi_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
numaq_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
paravirt_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
pci-calgary_64.c x86: calgary get rid of translate_phb 2007-10-17 20:16:41 +02:00
pci-dma_32.c i386: Clean up duplicate includes in arch/i386/kernel/ 2007-10-17 20:15:51 +02:00
pci-dma_64.c x86: use dev_to_node() to get node for device in dma_alloc_pages() 2007-10-17 20:15:47 +02:00
pci-gart_64.c x86: Some cleanups for pci gart code 2007-10-17 20:16:10 +02:00
pci-nommu_64.c x86-64: update nommu to sg helpers 2007-10-16 11:26:02 +02:00
pci-swiotlb_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
pcspeaker.c i386: move kernel 2007-10-11 11:17:01 +02:00
pmtimer_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
process_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
process_64.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ptrace_32.c Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
ptrace_64.c Consolidate PTRACE_DETACH 2007-10-16 09:42:49 -07:00
quirks.c x86: HPET add another ICH7 PCI id 2007-10-12 23:04:24 +02:00
reboot_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
reboot_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
reboot_fixups_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
relocate_kernel_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
relocate_kernel_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
scx200_32.c long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
setup64.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_32.c [x86] remove uses of magic macros for boot_params access 2007-10-16 17:38:31 -07:00
setup_64.c x86: misc. constifications 2007-10-17 20:16:08 +02:00
sigframe_32.h i386: move kernel 2007-10-11 11:17:01 +02:00
signal_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
signal_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
smp_32.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smp_64.c x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
smpboot_32.c x86: misc. constifications 2007-10-17 20:16:08 +02:00
smpboot_64.c x86: remove x86_cpu_to_log_apicid 2007-10-17 20:16:24 +02:00
smpcommon_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
srat_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
stacktrace.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
summit_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
suspend_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
suspend_asm_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
sys_i386_32.c remove include/asm-*/ipc.h 2007-10-17 08:42:55 -07:00
sys_x86_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
syscall_64.c i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
syscall_table_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
sysenter_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tce_64.c x86: Create clflush() inline, remove hardcoded wbinvd 2007-10-17 20:16:12 +02:00
time_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
time_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
topology.c i386: no need to make enable_cpu_hotplug a variable 2007-10-17 20:16:16 +02:00
trampoline_32.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
trampoline_64.S x86: misc. constifications 2007-10-17 20:16:08 +02:00
traps_32.c i386: clean up oops/bug reports 2007-10-17 20:16:52 +02:00
traps_64.c x86: constify stacktrace_ops 2007-10-17 20:16:11 +02:00
tsc_32.c x86: do not crash on non-Geode PCs in TSC probe 2007-10-17 20:15:37 +02:00
tsc_64.c x86: unify timex.h variants 2007-10-12 23:04:23 +02:00
tsc_sync.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
verify_cpu_64.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vm86_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vmi_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
vmiclock_32.c i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vmlinux_64.lds.S x86_64: move kernel 2007-10-11 11:17:24 +02:00
vsmp_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00
vsyscall-int80_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-note_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sigreturn_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall-sysenter_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_32.lds.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_32.S i386: move kernel 2007-10-11 11:17:01 +02:00
vsyscall_64.c x86: fix cpu_to_node references 2007-10-17 20:16:37 +02:00
x8664_ksyms_64.c x86_64: move kernel 2007-10-11 11:17:24 +02:00