perf machine: Use machine__kernel_map() thoroughly
In places where we were using its open coded equivalent. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-khkdugcdoqy3tkszm3jdxgbe@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@ -625,7 +625,7 @@ size_t machine__fprintf_vmlinux_path(struct machine *machine, FILE *fp)
|
||||
{
|
||||
int i;
|
||||
size_t printed = 0;
|
||||
struct dso *kdso = machine->vmlinux_maps[MAP__FUNCTION]->dso;
|
||||
struct dso *kdso = machine__kernel_map(machine, MAP__FUNCTION)->dso;
|
||||
|
||||
if (kdso->has_build_id) {
|
||||
char filename[PATH_MAX];
|
||||
@ -741,6 +741,7 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
|
||||
|
||||
for (type = 0; type < MAP__NR_TYPES; ++type) {
|
||||
struct kmap *kmap;
|
||||
struct map *map;
|
||||
|
||||
machine->vmlinux_maps[type] = map__new2(start, kernel, type);
|
||||
if (machine->vmlinux_maps[type] == NULL)
|
||||
@ -749,13 +750,13 @@ int __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
|
||||
machine->vmlinux_maps[type]->map_ip =
|
||||
machine->vmlinux_maps[type]->unmap_ip =
|
||||
identity__map_ip;
|
||||
kmap = map__kmap(machine->vmlinux_maps[type]);
|
||||
map = machine__kernel_map(machine, type);
|
||||
kmap = map__kmap(map);
|
||||
if (!kmap)
|
||||
return -1;
|
||||
|
||||
kmap->kmaps = &machine->kmaps;
|
||||
map_groups__insert(&machine->kmaps,
|
||||
machine->vmlinux_maps[type]);
|
||||
map_groups__insert(&machine->kmaps, map);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -767,13 +768,13 @@ void machine__destroy_kernel_maps(struct machine *machine)
|
||||
|
||||
for (type = 0; type < MAP__NR_TYPES; ++type) {
|
||||
struct kmap *kmap;
|
||||
struct map *map = machine__kernel_map(machine, type);
|
||||
|
||||
if (machine->vmlinux_maps[type] == NULL)
|
||||
if (map == NULL)
|
||||
continue;
|
||||
|
||||
kmap = map__kmap(machine->vmlinux_maps[type]);
|
||||
map_groups__remove(&machine->kmaps,
|
||||
machine->vmlinux_maps[type]);
|
||||
kmap = map__kmap(map);
|
||||
map_groups__remove(&machine->kmaps, map);
|
||||
if (kmap && kmap->ref_reloc_sym) {
|
||||
/*
|
||||
* ref_reloc_sym is shared among all maps, so free just
|
||||
@ -867,7 +868,7 @@ int machines__create_kernel_maps(struct machines *machines, pid_t pid)
|
||||
int machine__load_kallsyms(struct machine *machine, const char *filename,
|
||||
enum map_type type, symbol_filter_t filter)
|
||||
{
|
||||
struct map *map = machine->vmlinux_maps[type];
|
||||
struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
|
||||
int ret = dso__load_kallsyms(map->dso, filename, map, filter);
|
||||
|
||||
if (ret > 0) {
|
||||
@ -886,7 +887,7 @@ int machine__load_kallsyms(struct machine *machine, const char *filename,
|
||||
int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
|
||||
symbol_filter_t filter)
|
||||
{
|
||||
struct map *map = machine->vmlinux_maps[type];
|
||||
struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
|
||||
int ret = dso__load_vmlinux_path(map->dso, map, filter);
|
||||
|
||||
if (ret > 0)
|
||||
@ -1244,7 +1245,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
|
||||
/*
|
||||
* preload dso of guest kernel and modules
|
||||
*/
|
||||
dso__load(kernel, machine->vmlinux_maps[MAP__FUNCTION],
|
||||
dso__load(kernel, machine__kernel_map(machine, MAP__FUNCTION),
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user