diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2011-01-05 06:47:28 -0500 |
---|---|---|
committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2011-01-05 06:47:25 -0500 |
commit | 052ff461c8427629aee887ccc27478fc7373237c (patch) | |
tree | 1b2cae2956cc94c5b32730d467e20ff447b8c072 /net/iucv | |
parent | 545b288dcbdea58a2ce2afba5f6a8302d31ac459 (diff) |
[S390] irq: have detailed statistics for interrupt types
Up to now /proc/interrupts only has statistics for external and i/o
interrupts but doesn't split up them any further.
This patch adds a line for every single interrupt source so that it
is possible to easier tell what the machine is/was doing.
Part of the output now looks like this;
CPU0 CPU2 CPU4
EXT: 3898 4232 2305
I/O: 782 315 245
CLK: 1029 1964 727 [EXT] Clock Comparator
IPI: 2868 2267 1577 [EXT] Signal Processor
TMR: 0 0 0 [EXT] CPU Timer
TAL: 0 0 0 [EXT] Timing Alert
PFL: 0 0 0 [EXT] Pseudo Page Fault
[...]
NMI: 0 1 1 [NMI] Machine Checks
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'net/iucv')
-rw-r--r-- | net/iucv/iucv.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c index f7db676de77d..1ee5dab3cfae 100644 --- a/net/iucv/iucv.c +++ b/net/iucv/iucv.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #define KMSG_COMPONENT "iucv" | 36 | #define KMSG_COMPONENT "iucv" |
37 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt | 37 | #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt |
38 | 38 | ||
39 | #include <linux/kernel_stat.h> | ||
39 | #include <linux/module.h> | 40 | #include <linux/module.h> |
40 | #include <linux/moduleparam.h> | 41 | #include <linux/moduleparam.h> |
41 | #include <linux/spinlock.h> | 42 | #include <linux/spinlock.h> |
@@ -1804,6 +1805,7 @@ static void iucv_external_interrupt(unsigned int ext_int_code, | |||
1804 | struct iucv_irq_data *p; | 1805 | struct iucv_irq_data *p; |
1805 | struct iucv_irq_list *work; | 1806 | struct iucv_irq_list *work; |
1806 | 1807 | ||
1808 | kstat_cpu(smp_processor_id()).irqs[EXTINT_IUC]++; | ||
1807 | p = iucv_irq_data[smp_processor_id()]; | 1809 | p = iucv_irq_data[smp_processor_id()]; |
1808 | if (p->ippathid >= iucv_max_pathid) { | 1810 | if (p->ippathid >= iucv_max_pathid) { |
1809 | WARN_ON(p->ippathid >= iucv_max_pathid); | 1811 | WARN_ON(p->ippathid >= iucv_max_pathid); |