Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1684895 > unrolled thread
| Started by | tip-bot for Arnaldo Carvalho de Melo <tipbot@zytor.com> |
|---|---|
| First post | 2017-07-11 11:00 +0200 |
| Last post | 2017-07-11 11:00 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
[tip:perf/urgent] perf evsel: State in the default event name if attr.exclude_kernel is set tip-bot for Arnaldo Carvalho de Melo <tipbot@zytor.com> - 2017-07-11 11:00 +0200
| From | tip-bot for Arnaldo Carvalho de Melo <tipbot@zytor.com> |
|---|---|
| Date | 2017-07-11 11:00 +0200 |
| Subject | [tip:perf/urgent] perf evsel: State in the default event name if attr.exclude_kernel is set |
| Message-ID | <u1Zbt-8vM-37@gated-at.bofh.it> |
Commit-ID: ede5626d303b721dd02246a3850380943c24e380 Gitweb: http://git.kernel.org/tip/ede5626d303b721dd02246a3850380943c24e380 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Mon, 10 Jul 2017 16:19:25 -0300 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitDate: Mon, 10 Jul 2017 16:19:25 -0300 perf evsel: State in the default event name if attr.exclude_kernel is set When no event is specified perf will use the "cycles" hardware event with the highest precision available in the processor, and excluding kernel events for non-root users, so make that clear in the event name by setting the "u" event modifier, i.e. "cycles:upp". E.g.: The default for root: # perf record usleep 1 # perf evlist -v cycles:ppp: ..., precise_ip: 3, exclude_kernel: 0, ... # And for !root: $ perf record usleep 1 $ perf evlist -v cycles:uppp: ... , precise_ip: 3, exclude_kernel: 1, ... $ Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-lf29zcdl422i9knrgde0uwy3@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/evsel.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index f2a1876..413f74d 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -298,8 +298,10 @@ struct perf_evsel *perf_evsel__new_cycles(void) goto out; /* use asprintf() because free(evsel) assumes name is allocated */ - if (asprintf(&evsel->name, "cycles%.*s", - attr.precise_ip ? attr.precise_ip + 1 : 0, ":ppp") < 0) + if (asprintf(&evsel->name, "cycles%s%s%.*s", + (attr.precise_ip || attr.exclude_kernel) ? ":" : "", + attr.exclude_kernel ? "u" : "", + attr.precise_ip ? attr.precise_ip + 1 : 0, "ppp") < 0) goto error_free; out: return evsel;
Back to top | Article view | linux.kernel
csiph-web