summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2011-05-23 10:24:48 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-05-23 10:24:32 +0200
commitfcdd65b0e7bbbd6aef9be2f20e7c238759cf0b41 (patch)
tree879ab0cc7112001e682147487fdee3a3e856c2a5 /arch
parentbfac1d2d34990bf6ce0abf947fd5043cf412256b (diff)
downloadlinux-fcdd65b0e7bbbd6aef9be2f20e7c238759cf0b41.tar.bz2
[S390] oprofile: add missing irq stats counter
Count CPU measurement external interrupts as well. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/include/asm/irq.h1
-rw-r--r--arch/s390/kernel/irq.c1
-rw-r--r--arch/s390/oprofile/hwsampler.c2
3 files changed, 4 insertions, 0 deletions
diff --git a/arch/s390/include/asm/irq.h b/arch/s390/include/asm/irq.h
index db14a311f1d2..1544b90bd6d6 100644
--- a/arch/s390/include/asm/irq.h
+++ b/arch/s390/include/asm/irq.h
@@ -15,6 +15,7 @@ enum interruption_class {
EXTINT_VRT,
EXTINT_SCP,
EXTINT_IUC,
+ EXTINT_CPM,
IOINT_QAI,
IOINT_QDI,
IOINT_DAS,
diff --git a/arch/s390/kernel/irq.c b/arch/s390/kernel/irq.c
index ea5099c9709c..e204f9597aaf 100644
--- a/arch/s390/kernel/irq.c
+++ b/arch/s390/kernel/irq.c
@@ -32,6 +32,7 @@ static const struct irq_class intrclass_names[] = {
{.name = "VRT", .desc = "[EXT] Virtio" },
{.name = "SCP", .desc = "[EXT] Service Call" },
{.name = "IUC", .desc = "[EXT] IUCV" },
+ {.name = "CPM", .desc = "[EXT] CPU Measurement" },
{.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
{.name = "QDI", .desc = "[I/O] QDIO Interrupt" },
{.name = "DAS", .desc = "[I/O] DASD" },
diff --git a/arch/s390/oprofile/hwsampler.c b/arch/s390/oprofile/hwsampler.c
index 8e686bfe2959..cb4338ccbf7b 100644
--- a/arch/s390/oprofile/hwsampler.c
+++ b/arch/s390/oprofile/hwsampler.c
@@ -5,6 +5,7 @@
* Author: Heinz Graalfs <graalfs@de.ibm.com>
*/
+#include <linux/kernel_stat.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/smp.h>
@@ -677,6 +678,7 @@ static void hws_ext_handler(unsigned int ext_int_code,
int cpu;
struct hws_cpu_buffer *cb;
+ kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++;
cpu = smp_processor_id();
cb = &per_cpu(sampler_cpu_buffer, cpu);