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

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

perf_cpum_cf: Add support for counters available with IBM zEC12



Increase the maximum number of available counters and check if
the hardware supports the counter.  Support is indicated by the
version of the CPU-measurement counter facility.

Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent cec85466
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -9,7 +9,7 @@
#include <asm/cpu_mf.h>
#include <asm/cpu_mf.h>


/* CPU-measurement counter facility */
/* CPU-measurement counter facility */
#define PERF_CPUM_CF_MAX_CTR		160
#define PERF_CPUM_CF_MAX_CTR		256


/* Per-CPU flags for PMU states */
/* Per-CPU flags for PMU states */
#define PMU_F_RESERVED			0x1000
#define PMU_F_RESERVED			0x1000
+5 −1
Original line number Original line Diff line number Diff line
@@ -94,7 +94,7 @@ static int get_counter_set(u64 event)
		set = CPUMF_CTR_SET_USER;
		set = CPUMF_CTR_SET_USER;
	else if (event < 128)
	else if (event < 128)
		set = CPUMF_CTR_SET_CRYPTO;
		set = CPUMF_CTR_SET_CRYPTO;
	else if (event < 160)
	else if (event < 256)
		set = CPUMF_CTR_SET_EXT;
		set = CPUMF_CTR_SET_EXT;


	return set;
	return set;
@@ -138,6 +138,10 @@ static int validate_ctr_version(const struct hw_perf_event *hwc)
	case CPUMF_CTR_SET_EXT:
	case CPUMF_CTR_SET_EXT:
		if (cpuhw->info.csvn < 1)
		if (cpuhw->info.csvn < 1)
			err = -EOPNOTSUPP;
			err = -EOPNOTSUPP;
		if ((cpuhw->info.csvn == 1 && hwc->config > 159) ||
		    (cpuhw->info.csvn == 2 && hwc->config > 175) ||
		    (cpuhw->info.csvn  > 2 && hwc->config > 255))
			err = -EOPNOTSUPP;
		break;
		break;
	}
	}