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/[email protected] > Signed-off-by: Jiri Olsa <[email protected]> > --- > 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

