diff options
author | Helge Deller <deller@gmx.de> | 2013-05-06 15:20:26 -0400 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2013-05-07 16:39:22 -0400 |
commit | cd85d5514d5c4d7e78abac923fc032457d0c5091 (patch) | |
tree | b8a9ce478be624481fa8ec7341dd0ab96e7fb7ca /arch/parisc/include | |
parent | 200c880420a2c02a0899120ce52d801fad705b90 (diff) |
parisc: more irq statistics in /proc/interrupts
Add framework and initial values for more fine grained statistics in
/proc/interrupts.
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/include')
-rw-r--r-- | arch/parisc/include/asm/hardirq.h | 36 | ||||
-rw-r--r-- | arch/parisc/include/asm/processor.h | 1 |
2 files changed, 35 insertions, 2 deletions
diff --git a/arch/parisc/include/asm/hardirq.h b/arch/parisc/include/asm/hardirq.h index 0d68184a76cb..a9c0fb195253 100644 --- a/arch/parisc/include/asm/hardirq.h +++ b/arch/parisc/include/asm/hardirq.h | |||
@@ -1,11 +1,45 @@ | |||
1 | /* hardirq.h: PA-RISC hard IRQ support. | 1 | /* hardirq.h: PA-RISC hard IRQ support. |
2 | * | 2 | * |
3 | * Copyright (C) 2001 Matthew Wilcox <matthew@wil.cx> | 3 | * Copyright (C) 2001 Matthew Wilcox <matthew@wil.cx> |
4 | * Copyright (C) 2013 Helge Deller <deller@gmx.de> | ||
4 | */ | 5 | */ |
5 | 6 | ||
6 | #ifndef _PARISC_HARDIRQ_H | 7 | #ifndef _PARISC_HARDIRQ_H |
7 | #define _PARISC_HARDIRQ_H | 8 | #define _PARISC_HARDIRQ_H |
8 | 9 | ||
9 | #include <asm-generic/hardirq.h> | 10 | #include <linux/cache.h> |
11 | #include <linux/threads.h> | ||
12 | #include <linux/irq.h> | ||
13 | |||
14 | typedef struct { | ||
15 | unsigned int __softirq_pending; | ||
16 | #ifdef CONFIG_DEBUG_STACKOVERFLOW | ||
17 | unsigned int kernel_stack_usage; | ||
18 | #endif | ||
19 | #ifdef CONFIG_SMP | ||
20 | unsigned int irq_resched_count; | ||
21 | unsigned int irq_call_count; | ||
22 | /* | ||
23 | * irq_tlb_count is double-counted in irq_call_count, so it must be | ||
24 | * subtracted from irq_call_count when displaying irq_call_count | ||
25 | */ | ||
26 | unsigned int irq_tlb_count; | ||
27 | #endif | ||
28 | } ____cacheline_aligned irq_cpustat_t; | ||
29 | |||
30 | DECLARE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); | ||
31 | |||
32 | #define __ARCH_IRQ_STAT | ||
33 | #define __IRQ_STAT(cpu, member) (irq_stat[cpu].member) | ||
34 | #define inc_irq_stat(member) this_cpu_inc(irq_stat.member) | ||
35 | #define local_softirq_pending() this_cpu_read(irq_stat.__softirq_pending) | ||
36 | |||
37 | #define __ARCH_SET_SOFTIRQ_PENDING | ||
38 | |||
39 | #define set_softirq_pending(x) \ | ||
40 | this_cpu_write(irq_stat.__softirq_pending, (x)) | ||
41 | #define or_softirq_pending(x) this_cpu_or(irq_stat.__softirq_pending, (x)) | ||
42 | |||
43 | #define ack_bad_irq(irq) WARN(1, "unexpected IRQ trap at vector %02x\n", irq) | ||
10 | 44 | ||
11 | #endif /* _PARISC_HARDIRQ_H */ | 45 | #endif /* _PARISC_HARDIRQ_H */ |
diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h index 242f06a5fbd8..064015547d1e 100644 --- a/arch/parisc/include/asm/processor.h +++ b/arch/parisc/include/asm/processor.h | |||
@@ -112,7 +112,6 @@ struct cpuinfo_parisc { | |||
112 | unsigned long txn_addr; /* MMIO addr of EIR or id_eid */ | 112 | unsigned long txn_addr; /* MMIO addr of EIR or id_eid */ |
113 | #ifdef CONFIG_SMP | 113 | #ifdef CONFIG_SMP |
114 | unsigned long pending_ipi; /* bitmap of type ipi_message_type */ | 114 | unsigned long pending_ipi; /* bitmap of type ipi_message_type */ |
115 | unsigned long ipi_count; /* number ipi Interrupts */ | ||
116 | #endif | 115 | #endif |
117 | unsigned long bh_count; /* number of times bh was invoked */ | 116 | unsigned long bh_count; /* number of times bh was invoked */ |
118 | unsigned long prof_counter; /* per CPU profiling support */ | 117 | unsigned long prof_counter; /* per CPU profiling support */ |