|
@@ -2362,12 +2362,15 @@ int perf_evsel__open_strerror(struct perf_evsel *evsel, struct target *target,
|
|
|
case EPERM:
|
|
|
case EACCES:
|
|
|
return scnprintf(msg, size,
|
|
|
- "You may not have permission to collect %sstats.\n"
|
|
|
- "Consider tweaking /proc/sys/kernel/perf_event_paranoid:\n"
|
|
|
- " -1 - Not paranoid at all\n"
|
|
|
- " 0 - Disallow raw tracepoint access for unpriv\n"
|
|
|
- " 1 - Disallow cpu events for unpriv\n"
|
|
|
- " 2 - Disallow kernel profiling for unpriv",
|
|
|
+ "You may not have permission to collect %sstats.\n\n"
|
|
|
+ "Consider tweaking /proc/sys/kernel/perf_event_paranoid,\n"
|
|
|
+ "which controls use of the performance events system by\n"
|
|
|
+ "unprivileged users (without CAP_SYS_ADMIN).\n\n"
|
|
|
+ "The default value is 1:\n\n"
|
|
|
+ " -1: Allow use of (almost) all events by all users\n"
|
|
|
+ ">= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK\n"
|
|
|
+ ">= 1: Disallow CPU event access by users without CAP_SYS_ADMIN\n"
|
|
|
+ ">= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN",
|
|
|
target->system_wide ? "system-wide " : "");
|
|
|
case ENOENT:
|
|
|
return scnprintf(msg, size, "The %s event is not supported.",
|