diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-04-24 17:06:25 -0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-04-26 13:47:10 -0300 |
commit | 68a741868a0612408a46fda4c06663315d40c544 (patch) | |
tree | 186c1fafea08b167628947a572fd967b0884017a /tools/perf/util | |
parent | ffef80ecf89f0a883e976534a62db04059d3a4f6 (diff) |
perf machine: Introduce machine__kernel_maps()
That returns the a data structure contained the ordered list of kernel
modules + the main kernel maps, one more step in removing the
MAP__{FUNCTION,VARIABLE} split.
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: https://lkml.kernel.org/n/tip-qsgbxfyaohc80c9ma049dubm@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util')
-rw-r--r-- | tools/perf/util/event.c | 3 | ||||
-rw-r--r-- | tools/perf/util/machine.h | 12 | ||||
-rw-r--r-- | tools/perf/util/probe-event.c | 3 |
3 files changed, 14 insertions, 4 deletions
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index 9d94c59046d1..542bd5b79e48 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c @@ -464,8 +464,7 @@ int perf_event__synthesize_modules(struct perf_tool *tool, { int rc = 0; struct map *pos; - struct map_groups *kmaps = &machine->kmaps; - struct maps *maps = &kmaps->maps[MAP__FUNCTION]; + struct maps *maps = machine__kernel_maps(machine); union perf_event *event = zalloc((sizeof(event->mmap) + machine->id_hdr_size)); if (event == NULL) { diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h index 66cc200ef86f..92303ac718a6 100644 --- a/tools/perf/util/machine.h +++ b/tools/perf/util/machine.h @@ -70,12 +70,24 @@ struct map *__machine__kernel_map(struct machine *machine, enum map_type type) return machine->vmlinux_maps[type]; } +/* + * The main kernel (vmlinux) map + */ static inline struct map *machine__kernel_map(struct machine *machine) { return __machine__kernel_map(machine, MAP__FUNCTION); } +/* + * kernel (the one returned by machine__kernel_map()) plus kernel modules maps + */ +static inline +struct maps *machine__kernel_maps(struct machine *machine) +{ + return &machine->kmaps.maps[MAP__FUNCTION]; +} + int machine__get_kernel_start(struct machine *machine); static inline u64 machine__kernel_start(struct machine *machine) diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c index d5e2516d5981..50139764c6d7 100644 --- a/tools/perf/util/probe-event.c +++ b/tools/perf/util/probe-event.c @@ -161,8 +161,7 @@ static int kernel_get_symbol_address_by_name(const char *name, u64 *addr, static struct map *kernel_get_module_map(const char *module) { - struct map_groups *grp = &host_machine->kmaps; - struct maps *maps = &grp->maps[MAP__FUNCTION]; + struct maps *maps = machine__kernel_maps(host_machine); struct map *pos; /* A file path -- this is an offline module */ |