Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 02456169 authored by Hendrik Brueckner's avatar Hendrik Brueckner Committed by Martin Schwidefsky
Browse files

s390/irq: split irq stats for cpu-measurement alert facilities



CPU-measurement alerts are generated for different CPU-measurement
facilities, for example, the sampling and counter facilities.
Split the irq stats according to available facilities.

Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent a3415703
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -17,7 +17,8 @@ enum interruption_class {
	EXTINT_VRT,
	EXTINT_SCP,
	EXTINT_IUC,
	EXTINT_CPM,
	EXTINT_CMS,
	EXTINT_CMC,
	IOINT_CIO,
	IOINT_QAI,
	IOINT_DAS,
+2 −1
Original line number Diff line number Diff line
@@ -42,7 +42,8 @@ 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 = "CMS", .desc = "[EXT] CPU-Measurement: Sampling" },
	{.name = "CMC", .desc = "[EXT] CPU-Measurement: Counter" },
	{.name = "CIO", .desc = "[I/O] Common I/O Layer Interrupt" },
	{.name = "QAI", .desc = "[I/O] QDIO Adapter Interrupt" },
	{.name = "DAS", .desc = "[I/O] DASD" },
+1 −1
Original line number Diff line number Diff line
@@ -225,7 +225,7 @@ static void cpumf_measurement_alert(struct ext_code ext_code,
	if (!(alert & CPU_MF_INT_CF_MASK))
		return;

	kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++;
	kstat_cpu(smp_processor_id()).irqs[EXTINT_CMC]++;
	cpuhw = &__get_cpu_var(cpu_hw_events);

	/* Measurement alerts are shared and might happen when the PMU
+1 −1
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ static void hws_ext_handler(struct ext_code ext_code,
	if (!(param32 & CPU_MF_INT_SF_MASK))
		return;

	kstat_cpu(smp_processor_id()).irqs[EXTINT_CPM]++;
	kstat_cpu(smp_processor_id()).irqs[EXTINT_CMS]++;
	atomic_xchg(&cb->ext_params, atomic_read(&cb->ext_params) | param32);

	if (hws_wq)