Loading arch/x86/include/asm/hardirq.h +45 −4 Original line number Diff line number Diff line #ifdef CONFIG_X86_32 # include "hardirq_32.h" #else # include "hardirq_64.h" #ifndef _ASM_X86_HARDIRQ_H #define _ASM_X86_HARDIRQ_H #include <linux/threads.h> #include <linux/irq.h> typedef struct { unsigned int __softirq_pending; unsigned int __nmi_count; /* arch dependent */ unsigned int irq0_irqs; #ifdef CONFIG_X86_LOCAL_APIC unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq_spurious_count; #endif #ifdef CONFIG_SMP unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; #endif #ifdef CONFIG_X86_MCE unsigned int irq_thermal_count; # ifdef CONFIG_X86_64 unsigned int irq_threshold_count; # endif #endif } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #define __ARCH_IRQ_STAT #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) extern void ack_bad_irq(unsigned int irq); extern u64 arch_irq_stat_cpu(unsigned int cpu); #define arch_irq_stat_cpu arch_irq_stat_cpu extern u64 arch_irq_stat(void); #define arch_irq_stat arch_irq_stat #endif /* _ASM_X86_HARDIRQ_H */ arch/x86/include/asm/hardirq_32.hdeleted 100644 → 0 +0 −33 Original line number Diff line number Diff line #ifndef _ASM_X86_HARDIRQ_32_H #define _ASM_X86_HARDIRQ_32_H #include <linux/threads.h> #include <linux/irq.h> typedef struct { unsigned int __softirq_pending; unsigned long idle_timestamp; unsigned int __nmi_count; /* arch dependent */ unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq0_irqs; unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; unsigned int irq_thermal_count; unsigned int irq_spurious_count; } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #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> #endif /* _ASM_X86_HARDIRQ_32_H */ arch/x86/include/asm/hardirq_64.hdeleted 100644 → 0 +0 −39 Original line number Diff line number Diff line #ifndef _ASM_X86_HARDIRQ_64_H #define _ASM_X86_HARDIRQ_64_H #include <linux/threads.h> #include <linux/irq.h> #include <asm/apic.h> typedef struct { unsigned int __softirq_pending; unsigned int __nmi_count; /* arch dependent */ unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq0_irqs; unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; unsigned int irq_thermal_count; unsigned int irq_spurious_count; unsigned int irq_threshold_count; } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) extern void ack_bad_irq(unsigned int irq); #endif /* _ASM_X86_HARDIRQ_64_H */ arch/x86/kernel/cpu/mcheck/mce_intel_64.c +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/interrupt.h> #include <linux/percpu.h> #include <asm/processor.h> #include <asm/apic.h> #include <asm/msr.h> #include <asm/mce.h> #include <asm/hw_irq.h> Loading arch/x86/kernel/efi_64.c +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <asm/proto.h> #include <asm/efi.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> static pgd_t save_pgd __initdata; static unsigned long efi_flags __initdata; Loading Loading
arch/x86/include/asm/hardirq.h +45 −4 Original line number Diff line number Diff line #ifdef CONFIG_X86_32 # include "hardirq_32.h" #else # include "hardirq_64.h" #ifndef _ASM_X86_HARDIRQ_H #define _ASM_X86_HARDIRQ_H #include <linux/threads.h> #include <linux/irq.h> typedef struct { unsigned int __softirq_pending; unsigned int __nmi_count; /* arch dependent */ unsigned int irq0_irqs; #ifdef CONFIG_X86_LOCAL_APIC unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq_spurious_count; #endif #ifdef CONFIG_SMP unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; #endif #ifdef CONFIG_X86_MCE unsigned int irq_thermal_count; # ifdef CONFIG_X86_64 unsigned int irq_threshold_count; # endif #endif } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #define __ARCH_IRQ_STAT #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) extern void ack_bad_irq(unsigned int irq); extern u64 arch_irq_stat_cpu(unsigned int cpu); #define arch_irq_stat_cpu arch_irq_stat_cpu extern u64 arch_irq_stat(void); #define arch_irq_stat arch_irq_stat #endif /* _ASM_X86_HARDIRQ_H */
arch/x86/include/asm/hardirq_32.hdeleted 100644 → 0 +0 −33 Original line number Diff line number Diff line #ifndef _ASM_X86_HARDIRQ_32_H #define _ASM_X86_HARDIRQ_32_H #include <linux/threads.h> #include <linux/irq.h> typedef struct { unsigned int __softirq_pending; unsigned long idle_timestamp; unsigned int __nmi_count; /* arch dependent */ unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq0_irqs; unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; unsigned int irq_thermal_count; unsigned int irq_spurious_count; } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #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> #endif /* _ASM_X86_HARDIRQ_32_H */
arch/x86/include/asm/hardirq_64.hdeleted 100644 → 0 +0 −39 Original line number Diff line number Diff line #ifndef _ASM_X86_HARDIRQ_64_H #define _ASM_X86_HARDIRQ_64_H #include <linux/threads.h> #include <linux/irq.h> #include <asm/apic.h> typedef struct { unsigned int __softirq_pending; unsigned int __nmi_count; /* arch dependent */ unsigned int apic_timer_irqs; /* arch dependent */ unsigned int irq0_irqs; unsigned int irq_resched_count; unsigned int irq_call_count; unsigned int irq_tlb_count; unsigned int irq_thermal_count; unsigned int irq_spurious_count; unsigned int irq_threshold_count; } ____cacheline_aligned irq_cpustat_t; DECLARE_PER_CPU(irq_cpustat_t, irq_stat); /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ #define MAX_HARDIRQS_PER_CPU NR_VECTORS #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) extern void ack_bad_irq(unsigned int irq); #endif /* _ASM_X86_HARDIRQ_64_H */
arch/x86/kernel/cpu/mcheck/mce_intel_64.c +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ #include <linux/interrupt.h> #include <linux/percpu.h> #include <asm/processor.h> #include <asm/apic.h> #include <asm/msr.h> #include <asm/mce.h> #include <asm/hw_irq.h> Loading
arch/x86/kernel/efi_64.c +1 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ #include <asm/proto.h> #include <asm/efi.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> static pgd_t save_pgd __initdata; static unsigned long efi_flags __initdata; Loading