Skip to content

Commit

Permalink
perf trace: Remember if the vfs_getname tracepoint/kprobe is in place
Browse files Browse the repository at this point in the history
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 <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Milian Wolff <mail@milianw.de>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-ytxk5s5jpc50wahffmlxgxuw@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Arnaldo Carvalho de Melo committed Aug 5, 2015
1 parent 2e5e5f8 commit 08c9877
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions tools/perf/builtin-trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -1312,6 +1312,7 @@ struct trace {
bool show_tool_stats;
bool trace_syscalls;
bool force;
bool vfs_getname;
int trace_pgfaults;
};

Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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)) {
Expand Down

0 comments on commit 08c9877

Please sign in to comment.