Messages in this thread | | | Date | Mon, 3 Jul 2017 13:10:04 -0300 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCHv2 01/15] perf tools: Fix -n option |
| |
Em Mon, Jul 03, 2017 at 05:16:54PM +0200, Jiri Olsa escreveu: > On Mon, Jul 03, 2017 at 11:57:39AM -0300, Arnaldo Carvalho de Melo wrote: > > Em Mon, Jul 03, 2017 at 04:50:16PM +0200, Jiri Olsa escreveu: > > > The kernel fails to add a non sampling event event > > > with having precise_ip set. > > > > > > Make sure the precise_ip is 0 when using -n option > > > to create non sampling event in record. > > > > Ok, but how could that happen? What was the scenario? Which command? Can > > you provide a command line that causes the problem? > > [jolsa@krava perf]$ ./perf record -e cycles:ppp -n ls > Lowering default frequency rate to 3000. > Please consider tweaking /proc/sys/kernel/perf_event_max_sample_rate. > Error: > The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles:pppu). > /bin/dmesg may provide additional information. > No CONFIG_PERF_EVENTS=y kernel support configured? > > v2 attached, thanks
Ok, so the user asks for --no-samples but at the same time asks for precision equal to :ppp, we should stop right there and warn the user that that is not possible, instead of silently dropping off what the user explicitely asked.
I'm cooking a few patches to allow that, then we can apply your patch, that, with the current set of users will never kick in :-)
- Arnaldo
> jirka > > > --- > The kernel fails to add a non sampling event event > with having precise_ip set, like: > > $ perf record -e cycles:ppp -n ls > Error: > The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles:pppu). > /bin/dmesg may provide additional information. > No CONFIG_PERF_EVENTS=y kernel support configured? > > Make sure the precise_ip is 0 when using -n option > to create non sampling event in record. > > Link: http://lkml.kernel.org/n/tip-l513fzc1houvu7tl1bo5y65y@git.kernel.org > Signed-off-by: Jiri Olsa <jolsa@kernel.org> > --- > tools/perf/util/evsel.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c > index 6f4882f8d61f..915fe3cd6544 100644 > --- a/tools/perf/util/evsel.c > +++ b/tools/perf/util/evsel.c > @@ -890,8 +890,10 @@ void perf_evsel__config(struct perf_evsel *evsel, struct record_opts *opts, > attr->sample_period = 0; > } > > - if (opts->no_samples) > + if (opts->no_samples) { > attr->sample_freq = 0; > + attr->precise_ip = 0; > + } > > if (opts->inherit_stat) > attr->inherit_stat = 1; > -- > 2.9.4
| |