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

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

s390/perf: cpum_cf: fallback to software sampling events



The CPU-measurement counter facility does not support sampling events
and returns -EINVAL in that case.  This return code lets the perf tool
fail.  To fall back to software sampling events, return -ENOENT instead.

Signed-off-by: default avatarHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent bddb7ae2
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -367,13 +367,6 @@ static int __hw_perf_event_init(struct perf_event *event)
	if (ev >= PERF_CPUM_CF_MAX_CTR)
		return -EINVAL;

	/* The CPU measurement counter facility does not have any interrupts
	 * to do sampling.  Sampling must be provided by external means,
	 * for example, by timers.
	 */
	if (hwc->sample_period)
		return -EINVAL;

	/* Use the hardware perf event structure to store the counter number
	 * in 'config' member and the counter set to which the counter belongs
	 * in the 'config_base'.  The counter set (config_base) is then used
@@ -418,6 +411,12 @@ static int cpumf_pmu_event_init(struct perf_event *event)
	case PERF_TYPE_HARDWARE:
	case PERF_TYPE_HW_CACHE:
	case PERF_TYPE_RAW:
		/* The CPU measurement counter facility does not have overflow
		 * interrupts to do sampling.  Sampling must be provided by
		 * external means, for example, by timers.
		 */
		if (is_sampling_event(event))
			return -ENOENT;
		err = __hw_perf_event_init(event);
		break;
	default: