Loading tools/perf/Documentation/perf-report.txt +3 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,9 @@ OPTIONS --vmlinux=<file>:: vmlinux pathname --kallsyms=<file>:: kallsyms pathname -m:: --modules:: Load module symbols. WARNING: This should only be used with -k and Loading tools/perf/builtin-report.c +2 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,8 @@ static const struct option options[] = { "dump raw trace in ASCII"), OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name, "file", "vmlinux pathname"), OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file", "kallsyms pathname"), OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), OPT_BOOLEAN('m', "modules", &symbol_conf.use_modules, "load module symbols - WARNING: use only with -k and LIVE kernel"), Loading tools/perf/util/event.c +11 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ #include "strlist.h" #include "thread.h" const char *event__name[] = { static const char *event__name[] = { [0] = "TOTAL", [PERF_RECORD_MMAP] = "MMAP", [PERF_RECORD_LOST] = "LOST", Loading @@ -22,8 +22,18 @@ const char *event__name[] = { [PERF_RECORD_HEADER_EVENT_TYPE] = "EVENT_TYPE", [PERF_RECORD_HEADER_TRACING_DATA] = "TRACING_DATA", [PERF_RECORD_HEADER_BUILD_ID] = "BUILD_ID", [PERF_RECORD_FINISHED_ROUND] = "FINISHED_ROUND", }; const char *event__get_event_name(unsigned int id) { if (id >= ARRAY_SIZE(event__name)) return "INVALID"; if (!event__name[id]) return "UNKNOWN"; return event__name[id]; } static struct sample_data synth_sample = { .pid = -1, .tid = -1, Loading tools/perf/util/event.h +2 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ struct build_id_event { }; enum perf_user_event_type { /* above any possible kernel type */ PERF_RECORD_USER_TYPE_START = 64, PERF_RECORD_HEADER_ATTR = 64, PERF_RECORD_HEADER_EVENT_TYPE = 65, PERF_RECORD_HEADER_TRACING_DATA = 66, Loading Loading @@ -171,6 +172,6 @@ int event__preprocess_sample(const event_t *self, struct perf_session *session, int event__parse_sample(const event_t *event, struct perf_session *session, struct sample_data *sample); extern const char *event__name[]; const char *event__get_event_name(unsigned int id); #endif /* __PERF_RECORD_H */ tools/perf/util/hist.c +6 −3 Original line number Diff line number Diff line Loading @@ -1168,10 +1168,13 @@ size_t hists__fprintf_nr_events(struct hists *self, FILE *fp) size_t ret = 0; for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { if (!event__name[i]) const char *name = event__get_event_name(i); if (!strcmp(name, "UNKNOWN")) continue; ret += fprintf(fp, "%10s events: %10d\n", event__name[i], self->stats.nr_events[i]); ret += fprintf(fp, "%16s events: %10d\n", name, self->stats.nr_events[i]); } return ret; Loading Loading
tools/perf/Documentation/perf-report.txt +3 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,9 @@ OPTIONS --vmlinux=<file>:: vmlinux pathname --kallsyms=<file>:: kallsyms pathname -m:: --modules:: Load module symbols. WARNING: This should only be used with -k and Loading
tools/perf/builtin-report.c +2 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,8 @@ static const struct option options[] = { "dump raw trace in ASCII"), OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name, "file", "vmlinux pathname"), OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file", "kallsyms pathname"), OPT_BOOLEAN('f', "force", &force, "don't complain, do it"), OPT_BOOLEAN('m', "modules", &symbol_conf.use_modules, "load module symbols - WARNING: use only with -k and LIVE kernel"), Loading
tools/perf/util/event.c +11 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ #include "strlist.h" #include "thread.h" const char *event__name[] = { static const char *event__name[] = { [0] = "TOTAL", [PERF_RECORD_MMAP] = "MMAP", [PERF_RECORD_LOST] = "LOST", Loading @@ -22,8 +22,18 @@ const char *event__name[] = { [PERF_RECORD_HEADER_EVENT_TYPE] = "EVENT_TYPE", [PERF_RECORD_HEADER_TRACING_DATA] = "TRACING_DATA", [PERF_RECORD_HEADER_BUILD_ID] = "BUILD_ID", [PERF_RECORD_FINISHED_ROUND] = "FINISHED_ROUND", }; const char *event__get_event_name(unsigned int id) { if (id >= ARRAY_SIZE(event__name)) return "INVALID"; if (!event__name[id]) return "UNKNOWN"; return event__name[id]; } static struct sample_data synth_sample = { .pid = -1, .tid = -1, Loading
tools/perf/util/event.h +2 −1 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ struct build_id_event { }; enum perf_user_event_type { /* above any possible kernel type */ PERF_RECORD_USER_TYPE_START = 64, PERF_RECORD_HEADER_ATTR = 64, PERF_RECORD_HEADER_EVENT_TYPE = 65, PERF_RECORD_HEADER_TRACING_DATA = 66, Loading Loading @@ -171,6 +172,6 @@ int event__preprocess_sample(const event_t *self, struct perf_session *session, int event__parse_sample(const event_t *event, struct perf_session *session, struct sample_data *sample); extern const char *event__name[]; const char *event__get_event_name(unsigned int id); #endif /* __PERF_RECORD_H */
tools/perf/util/hist.c +6 −3 Original line number Diff line number Diff line Loading @@ -1168,10 +1168,13 @@ size_t hists__fprintf_nr_events(struct hists *self, FILE *fp) size_t ret = 0; for (i = 0; i < PERF_RECORD_HEADER_MAX; ++i) { if (!event__name[i]) const char *name = event__get_event_name(i); if (!strcmp(name, "UNKNOWN")) continue; ret += fprintf(fp, "%10s events: %10d\n", event__name[i], self->stats.nr_events[i]); ret += fprintf(fp, "%16s events: %10d\n", name, self->stats.nr_events[i]); } return ret; Loading