Re: [PATCH] perf utils: silent "Couldn't synthesize bpf events" warning for EPERM

From: Jiri Olsa
Date: Mon Feb 04 2019 - 15:30:24 EST


On Mon, Feb 04, 2019 at 07:33:06PM +0000, Song Liu wrote:
>
>
> > On Feb 4, 2019, at 11:31 AM, Song Liu <songliubraving@xxxxxx> wrote:
> >
> > Synthesizing BPF events is only supported for root. Silent warning msg
> > when non-root user runs perf-record.

great, it was annoying ;-)

Tested-by: Jiri Olsa <jolsa@xxxxxxxxxx>

thanks,
jirka

> >
> > Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> > Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> > Reported-by: David Carrillo-Cisneros <davidca@xxxxxx>
> > Tested-by: David Carrillo-Cisneros <davidca@xxxxxx>
> > Signed-off-by: Song Liu <songliubraving@xxxxxx>
> > ---
> > tools/perf/util/bpf-event.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/perf/util/bpf-event.c b/tools/perf/util/bpf-event.c
> > index 796ef793f4ce..62dda96b0096 100644
> > --- a/tools/perf/util/bpf-event.c
> > +++ b/tools/perf/util/bpf-event.c
> > @@ -236,8 +236,8 @@ int perf_event__synthesize_bpf_events(struct perf_tool *tool,
> > pr_debug("%s: can't get next program: %s%s",
> > __func__, strerror(errno),
> > errno == EINVAL ? " -- kernel too old?" : "");
> > - /* don't report error on old kernel */
> > - err = (errno == EINVAL) ? 0 : -1;
> > + /* don't report error on old kernel or EPERM */
> > + err = (errno == EINVAL || errno == EPERM) ? 0 : -1;
> > break;
> > }
> > fd = bpf_prog_get_fd_by_id(id);
> > --
> > 2.17.1
> >
>
> CC David.