Messages in this thread Patch in this message | | | From | James Clark <> | Subject | [PATCH 1/1] Return EINVAL when precise_ip perf events are requested on Arm | Date | Wed, 15 Jan 2020 10:58:55 +0000 |
| |
ARM PMU events can be delivered with arbitrary skid, and there's nothing the kernel can do to prevent this. Given that, the PMU cannot support precise_ip != 0.
Also update comment to state that attr.config field is used to set the event type rather than event_id which doesn't exist.
Signed-off-by: James Clark <james.clark@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Tan Xiaojun <tanxiaojun@huawei.com> Cc: Al Grant <al.grant@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org --- drivers/perf/arm_pmu.c | 3 +++ include/uapi/linux/perf_event.h | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c index df352b334ea7..4ddbdb93b3b6 100644 --- a/drivers/perf/arm_pmu.c +++ b/drivers/perf/arm_pmu.c @@ -102,6 +102,9 @@ armpmu_map_event(struct perf_event *event, u64 config = event->attr.config; int type = event->attr.type; + if (event->attr.precise) + return -EINVAL; + if (type == event->pmu->type) return armpmu_map_raw_event(raw_event_mask, config); diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h index 377d794d3105..3501b2eb168a 100644 --- a/include/uapi/linux/perf_event.h +++ b/include/uapi/linux/perf_event.h @@ -38,8 +38,8 @@ enum perf_type_id { }; /* - * Generalized performance event event_id types, used by the - * attr.event_id parameter of the sys_perf_event_open() + * Generalized hardware performance event types, used by the + * attr.config parameter of the sys_perf_event_open() * syscall: */ enum perf_hw_id { -- 2.24.0
| |