From: Tvrtko Ursulin <[email protected]> For situations where sysadmins might want to allow different level of access control for different PMUs, we start creating per-PMU perf_event_paranoid controls in sysfs.
These work in equivalent fashion as the existing perf_event_paranoid sysctl, which now becomes the parent control for each PMU. On PMU registration the global/parent value will be inherited by each PMU, as it will be propagated to all registered PMUs when the sysctl is updated. At any later point individual PMU access controls, located in <sysfs>/device/<pmu-name>/perf_event_paranoid, can be adjusted to achieve fine grained access control. Discussion from previous posting: https://lkml.org/lkml/2018/5/21/156 Cc: Thomas Gleixner <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Arnaldo Carvalho de Melo <[email protected]> Cc: Alexander Shishkin <[email protected]> Cc: Jiri Olsa <[email protected]> Cc: Namhyung Kim <[email protected]> Cc: Madhavan Srinivasan <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Alexey Budankov <[email protected]> Cc: [email protected] Cc: [email protected] Tvrtko Ursulin (4): perf: Move some access checks later in perf_event_open perf: Pass pmu pointer to perf_paranoid_* helpers perf: Allow per PMU access control perf Documentation: Document the per PMU perf_event_paranoid interface .../sysfs-bus-event_source-devices-events | 14 +++ arch/powerpc/perf/core-book3s.c | 2 +- arch/x86/events/intel/bts.c | 2 +- arch/x86/events/intel/core.c | 2 +- arch/x86/events/intel/p4.c | 2 +- include/linux/perf_event.h | 18 ++- kernel/events/core.c | 104 +++++++++++++++--- kernel/sysctl.c | 4 +- kernel/trace/trace_event_perf.c | 6 +- 9 files changed, 123 insertions(+), 31 deletions(-) -- 2.17.1

