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 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

