Loading arch/x86/include/asm/hardirq_32.h +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); #define __ARCH_IRQ_STAT #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++) void ack_bad_irq(unsigned int irq); #include <linux/irq_cpustat.h> Loading arch/x86/include/asm/hardirq_64.h +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) add_pda(member, 1) #define local_softirq_pending() read_pda(__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 Loading arch/x86/kernel/apic.c +3 −10 Original line number Diff line number Diff line Loading @@ -783,11 +783,7 @@ static void local_apic_timer_interrupt(void) /* * the NMI deadlock-detector uses this. */ #ifdef CONFIG_X86_64 add_pda(apic_timer_irqs, 1); #else per_cpu(irq_stat, cpu).apic_timer_irqs++; #endif inc_irq_stat(apic_timer_irqs); evt->event_handler(evt); } Loading Loading @@ -1695,14 +1691,11 @@ void smp_spurious_interrupt(struct pt_regs *regs) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else inc_irq_stat(irq_spurious_count); /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } Loading arch/x86/kernel/smp.c +3 −15 Original line number Diff line number Diff line Loading @@ -178,11 +178,7 @@ static void native_smp_send_stop(void) void smp_reschedule_interrupt(struct pt_regs *regs) { ack_APIC_irq(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_resched_count++; #else add_pda(irq_resched_count, 1); #endif inc_irq_stat(irq_resched_count); } void smp_call_function_interrupt(struct pt_regs *regs) Loading @@ -190,11 +186,7 @@ void smp_call_function_interrupt(struct pt_regs *regs) ack_APIC_irq(); irq_enter(); generic_smp_call_function_interrupt(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_call_count++; #else add_pda(irq_call_count, 1); #endif inc_irq_stat(irq_call_count); irq_exit(); } Loading @@ -203,11 +195,7 @@ void smp_call_function_single_interrupt(struct pt_regs *regs) ack_APIC_irq(); irq_enter(); generic_smp_call_function_single_interrupt(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_call_count++; #else add_pda(irq_call_count, 1); #endif inc_irq_stat(irq_call_count); irq_exit(); } Loading arch/x86/kernel/traps.c +1 −5 Original line number Diff line number Diff line Loading @@ -481,11 +481,7 @@ do_nmi(struct pt_regs *regs, long error_code) { nmi_enter(); #ifdef CONFIG_X86_32 { int cpu; cpu = smp_processor_id(); ++nmi_count(cpu); } #else add_pda(__nmi_count, 1); #endif inc_irq_stat(__nmi_count); if (!ignore_nmis) default_do_nmi(regs); Loading Loading
arch/x86/include/asm/hardirq_32.h +2 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); #define __ARCH_IRQ_STAT #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++) void ack_bad_irq(unsigned int irq); #include <linux/irq_cpustat.h> Loading
arch/x86/include/asm/hardirq_64.h +2 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) add_pda(member, 1) #define local_softirq_pending() read_pda(__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 Loading
arch/x86/kernel/apic.c +3 −10 Original line number Diff line number Diff line Loading @@ -783,11 +783,7 @@ static void local_apic_timer_interrupt(void) /* * the NMI deadlock-detector uses this. */ #ifdef CONFIG_X86_64 add_pda(apic_timer_irqs, 1); #else per_cpu(irq_stat, cpu).apic_timer_irqs++; #endif inc_irq_stat(apic_timer_irqs); evt->event_handler(evt); } Loading Loading @@ -1695,14 +1691,11 @@ void smp_spurious_interrupt(struct pt_regs *regs) if (v & (1 << (SPURIOUS_APIC_VECTOR & 0x1f))) ack_APIC_irq(); #ifdef CONFIG_X86_64 add_pda(irq_spurious_count, 1); #else inc_irq_stat(irq_spurious_count); /* see sw-dev-man vol 3, chapter 7.4.13.5 */ printk(KERN_INFO "spurious APIC interrupt on CPU#%d, " "should never happen.\n", smp_processor_id()); __get_cpu_var(irq_stat).irq_spurious_count++; #endif irq_exit(); } Loading
arch/x86/kernel/smp.c +3 −15 Original line number Diff line number Diff line Loading @@ -178,11 +178,7 @@ static void native_smp_send_stop(void) void smp_reschedule_interrupt(struct pt_regs *regs) { ack_APIC_irq(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_resched_count++; #else add_pda(irq_resched_count, 1); #endif inc_irq_stat(irq_resched_count); } void smp_call_function_interrupt(struct pt_regs *regs) Loading @@ -190,11 +186,7 @@ void smp_call_function_interrupt(struct pt_regs *regs) ack_APIC_irq(); irq_enter(); generic_smp_call_function_interrupt(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_call_count++; #else add_pda(irq_call_count, 1); #endif inc_irq_stat(irq_call_count); irq_exit(); } Loading @@ -203,11 +195,7 @@ void smp_call_function_single_interrupt(struct pt_regs *regs) ack_APIC_irq(); irq_enter(); generic_smp_call_function_single_interrupt(); #ifdef CONFIG_X86_32 __get_cpu_var(irq_stat).irq_call_count++; #else add_pda(irq_call_count, 1); #endif inc_irq_stat(irq_call_count); irq_exit(); } Loading
arch/x86/kernel/traps.c +1 −5 Original line number Diff line number Diff line Loading @@ -481,11 +481,7 @@ do_nmi(struct pt_regs *regs, long error_code) { nmi_enter(); #ifdef CONFIG_X86_32 { int cpu; cpu = smp_processor_id(); ++nmi_count(cpu); } #else add_pda(__nmi_count, 1); #endif inc_irq_stat(__nmi_count); if (!ignore_nmis) default_do_nmi(regs); Loading