perf trace: Remember if the vfs_getname tracepoint/kprobe is in place
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: 08c987763ad3bc1aef133bcac073198ff86efa85 Gitweb: http://git.kernel.org/tip/08c987763ad3bc1aef133bcac073198ff86efa85 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Tue, 4 Aug 2015 17:01:04 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Wed, 5 Aug 2015 10:52:32 -0300
perf trace: Remember if the vfs_getname tracepoint/kprobe is in place
So that we can later decide if we will store where to expand the pathname once we are handling vfs_getname or if we should instead just go on and straight away print the pointer.
Cc Adrian Hunter <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc David Ahern <[email protected]>
Cc Frederic Weisbecker <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Milian Wolff <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Stephane Eranian <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/builtin-trace.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
tools/perf/builtin-trace.c +6 -4
@@ -1312,6 +1312,7 @@ struct trace {bool show_tool_stats;bool trace_syscalls;bool force; +bool vfs_getname;int trace_pgfaults; };
@@ -2188,19 +2189,20 @@ static int trace__record(struct trace *trace, int argc, const char **argv)static size_t trace__fprintf_thread_summary (struct trace *trace,FILE *fp); -static void perf_evlist__add_vfs_getname (struct perf_evlist *evlist) +static bool perf_evlist__add_vfs_getname (struct perf_evlist *evlist) {struct perf_evsel *evsel =perf_evsel__newtp ("probe" ,"vfs_getname" );if (evsel ==NULL ) -return ; +return false;if (perf_evsel__field (evsel,"pathname" ) ==NULL ) {perf_evsel__delete (evsel); -return ; +return false; } evsel->handler = trace__vfs_getname;perf_evlist__add (evlist, evsel); +return true; } static int perf_evlist__add_pgfault(struct perf_evlist *evlist,
@@ -2330,7 +2332,7 @@ static int trace__run(struct trace *trace, int argc, const char **argv) goto out_error_raw_syscalls;if (trace->trace_syscalls) -perf_evlist__add_vfs_getname (evlist); + trace->vfs_getname =perf_evlist__add_vfs_getname (evlist);if ((trace->trace_pgfaults &TRACE_PFMAJ ) &&perf_evlist__add_pgfault (evlist,PERF_COUNT_SW_PAGE_FAULTS_MAJ )) {