diff options
| author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2011-10-30 10:17:19 -0400 |
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-10-30 10:16:47 -0400 |
| commit | 2a3a2d66aa4e5abaf8f9222d21735321f02a00dc (patch) | |
| tree | 92606986642a9cee1561f532c53f4b7ca956ef2f | |
| parent | e1c4d0142d32f97706b752d94c9e20c3f21901f8 (diff) | |
[S390] irqstats: split IPI interrupt accounting
We use both the external call and emergency call IPIs to signal remote
cpus. Therefore it makes sense to account them differently withing
/proc/irqstats so we actually know what happened.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| -rw-r--r-- | arch/s390/include/asm/irq.h | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/irq.c | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/smp.c | 5 |
3 files changed, 8 insertions, 3 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h index eadfa9fc03ba..ba6d85f88d50 100644 --- a/arch/s390/include/asm/irq.h +++ b/arch/s390/include/asm/irq.h | |||
| @@ -8,7 +8,8 @@ enum interruption_class { | |||
| 8 | EXTERNAL_INTERRUPT, | 8 | EXTERNAL_INTERRUPT, |
| 9 | IO_INTERRUPT, | 9 | IO_INTERRUPT, |
| 10 | EXTINT_CLK, | 10 | EXTINT_CLK, |
| 11 | EXTINT_IPI, | 11 | EXTINT_EXC, |
| 12 | EXTINT_EMS, | ||
| 12 | EXTINT_TMR, | 13 | EXTINT_TMR, |
| 13 | EXTINT_TLA, | 14 | EXTINT_TLA, |
| 14 | EXTINT_PFL, | 15 | EXTINT_PFL, |
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c index 30faaef34457..b9a7fdd9c814 100644 --- a/arch/s390/kernel/irq.c +++ b/arch/s390/kernel/irq.c | |||
| @@ -33,7 +33,8 @@ static const struct irq_class intrclass_names[] = { | |||
| 33 | {.name = "EXT" }, | 33 | {.name = "EXT" }, |
| 34 | {.name = "I/O" }, | 34 | {.name = "I/O" }, |
| 35 | {.name = "CLK", .desc = "[EXT] Clock Comparator" }, | 35 | {.name = "CLK", .desc = "[EXT] Clock Comparator" }, |
| 36 | {.name = "IPI", .desc = "[EXT] Signal Processor" }, | 36 | {.name = "EXC", .desc = "[EXT] External Call" }, |
| 37 | {.name = "EMS", .desc = "[EXT] Emergency Signal" }, | ||
| 37 | {.name = "TMR", .desc = "[EXT] CPU Timer" }, | 38 | {.name = "TMR", .desc = "[EXT] CPU Timer" }, |
| 38 | {.name = "TAL", .desc = "[EXT] Timing Alert" }, | 39 | {.name = "TAL", .desc = "[EXT] Timing Alert" }, |
| 39 | {.name = "PFL", .desc = "[EXT] Pseudo Page Fault" }, | 40 | {.name = "PFL", .desc = "[EXT] Pseudo Page Fault" }, |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 3bde5688ceb5..3ea872890da2 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
| @@ -187,7 +187,10 @@ static void do_ext_call_interrupt(unsigned int ext_int_code, | |||
| 187 | { | 187 | { |
| 188 | unsigned long bits; | 188 | unsigned long bits; |
| 189 | 189 | ||
| 190 | kstat_cpu(smp_processor_id()).irqs[EXTINT_IPI]++; | 190 | if (ext_int_code == 0x1202) |
| 191 | kstat_cpu(smp_processor_id()).irqs[EXTINT_EXC]++; | ||
| 192 | else | ||
| 193 | kstat_cpu(smp_processor_id()).irqs[EXTINT_EMS]++; | ||
| 191 | /* | 194 | /* |
| 192 | * handle bit signal external calls | 195 | * handle bit signal external calls |
| 193 | */ | 196 | */ |
