Em Sun, Aug 20, 2017 at 02:39:20PM +0300, Konstantin Khlebnikov escreveu: > Fix misprint CAP_IOC_LOCK -> CAP_IPC_LOCK. This capability have nothing > to do with raw tracepoints. This part is about bypassing mlock limits. > > Sysctl kernel.perf_event_paranoid = -1 allows raw and ftrace function > tracepoints without CAP_SYS_ADMIN.
Thanks, looks sane, applied. - Arnaldo > Signed-off-by: Konstantin Khlebnikov <[email protected]> > --- > Documentation/sysctl/kernel.txt | 13 ++++++++++++- > tools/perf/util/evsel.c | 4 +++- > 2 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt > index bac23c198360..ce61d1fe08ca 100644 > --- a/Documentation/sysctl/kernel.txt > +++ b/Documentation/sysctl/kernel.txt > @@ -61,6 +61,7 @@ show up in /proc/sys/kernel: > - perf_cpu_time_max_percent > - perf_event_paranoid > - perf_event_max_stack > +- perf_event_mlock_kb > - perf_event_max_contexts_per_stack > - pid_max > - powersave-nap [ PPC only ] > @@ -654,7 +655,9 @@ Controls use of the performance events system by > unprivileged > users (without CAP_SYS_ADMIN). The default value is 2. > > -1: Allow use of (almost) all events by all users > ->=0: Disallow raw tracepoint access by users without CAP_IOC_LOCK > + Ignore mlock limit after perf_event_mlock_kb without CAP_IPC_LOCK > +>=0: Disallow ftrace function tracepoint by users without CAP_SYS_ADMIN > + Disallow raw tracepoint access by users without CAP_SYS_ADMIN > >=1: Disallow CPU event access by users without CAP_SYS_ADMIN > >=2: Disallow kernel profiling by users without CAP_SYS_ADMIN > > @@ -673,6 +676,14 @@ The default value is 127. > > ============================================================== > > +perf_event_mlock_kb: > + > +Control size of per-cpu ring buffer not counted agains mlock limit. > + > +The default value is 512 + 1 page > + > +============================================================== > + > perf_event_max_contexts_per_stack: > > Controls maximum number of stack frame context entries for > diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c > index 413f74df08de..5ed7056d1fd0 100644 > --- a/tools/perf/util/evsel.c > +++ b/tools/perf/util/evsel.c > @@ -2535,7 +2535,9 @@ int perf_evsel__open_strerror(struct perf_evsel *evsel, > struct target *target, > "unprivileged users (without CAP_SYS_ADMIN).\n\n" > "The current value is %d:\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" > + " Ignore mlock limit after perf_event_mlock_kb without > CAP_IPC_LOCK\n" > + ">= 0: Disallow ftrace function tracepoint by users without > CAP_SYS_ADMIN\n" > + " Disallow raw tracepoint access by users without > CAP_SYS_ADMIN\n" > ">= 1: Disallow CPU event access by users without > CAP_SYS_ADMIN\n" > ">= 2: Disallow kernel profiling by users without > CAP_SYS_ADMIN\n\n" > "To make this setting permanent, edit /etc/sysctl.conf too, > e.g.:\n\n"

