perf machine: Add method for common kernel_map(FUNCTION) operation
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 30 Sep 2015 14:54:04 +0000 (11:54 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 30 Sep 2015 21:34:29 +0000 (18:34 -0300)
And it is also a step in the direction of killing the separation of data
and text maps in map_groups.

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-rrds86kb3wx5wk8v38v56gw8@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-kmem.c
tools/perf/builtin-report.c
tools/perf/tests/code-reading.c
tools/perf/tests/vmlinux-kallsyms.c
tools/perf/util/event.c
tools/perf/util/intel-pt.c
tools/perf/util/machine.c
tools/perf/util/machine.h
tools/perf/util/map.c
tools/perf/util/probe-event.c

index b122c4e0818ec9cc390e22d4f2509d026d33f194..93ce665f976f65a4a1889ba01441bb1f1cce2786 100644 (file)
@@ -329,7 +329,7 @@ static int build_alloc_func_list(void)
                return -EINVAL;
        }
 
-       kernel_map = machine__kernel_map(machine, MAP__FUNCTION)
+       kernel_map = machine__kernel_map(machine);
        if (map__load(kernel_map, NULL) < 0) {
                pr_err("cannot load kernel map\n");
                return -ENOENT;
index 7962605b357652cecc12dd7c583ae3a37e627127..b5623639f67dd06f2829e59a56725a7f7be30db2 100644 (file)
@@ -387,7 +387,7 @@ static int perf_evlist__tty_browse_hists(struct perf_evlist *evlist,
 
 static void report__warn_kptr_restrict(const struct report *rep)
 {
-       struct map *kernel_map = machine__kernel_map(&rep->session->machines.host, MAP__FUNCTION);
+       struct map *kernel_map = machine__kernel_map(&rep->session->machines.host);
        struct kmap *kernel_kmap = kernel_map ? map__kmap(kernel_map) : NULL;
 
        if (kernel_map == NULL ||
index 47017a8aa6851fffb25430ddf594f9988de0a6e5..49b1959dda41f0ceb5bc248f3c3e90b558ce9169 100644 (file)
@@ -473,7 +473,7 @@ static int do_test_code_reading(bool try_kcore)
                symbol_conf.kallsyms_name = "/proc/kallsyms";
 
        /* Load kernel map */
-       map = machine__kernel_map(machine, MAP__FUNCTION);
+       map = machine__kernel_map(machine);
        ret = map__load(map, NULL);
        if (ret < 0) {
                pr_debug("map__load failed\n");
index b34c5fc829ae2b0da7389bd31649dd0389e40604..d677e018e50426a8b2c2b417a63b8dfbe36949b7 100644 (file)
@@ -68,7 +68,7 @@ int test__vmlinux_matches_kallsyms(void)
         * to see if the running kernel was relocated by checking if it has the
         * same value in the vmlinux file we load.
         */
-       kallsyms_map = machine__kernel_map(&kallsyms, type);
+       kallsyms_map = machine__kernel_map(&kallsyms);
 
        /*
         * Step 5:
@@ -80,7 +80,7 @@ int test__vmlinux_matches_kallsyms(void)
                goto out;
        }
 
-       vmlinux_map = machine__kernel_map(&vmlinux, type);
+       vmlinux_map = machine__kernel_map(&vmlinux);
 
        /*
         * Step 6:
index 281ab7f874469e7277cd69e745788203fe323940..cb98b5af9e1757f842da2c51c6a92348d8d7fd28 100644 (file)
@@ -649,7 +649,7 @@ int perf_event__synthesize_kernel_mmap(struct perf_tool *tool,
        size_t size;
        const char *mmap_name;
        char name_buff[PATH_MAX];
-       struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+       struct map *map = machine__kernel_map(machine);
        struct kmap *kmap;
        int err;
        union perf_event *event;
@@ -1007,7 +1007,7 @@ int perf_event__preprocess_sample(const union perf_event *event,
         * it now.
         */
        if (cpumode == PERF_RECORD_MISC_KERNEL &&
-           machine__kernel_map(machine, MAP__FUNCTION) == NULL)
+           machine__kernel_map(machine) == NULL)
                machine__create_kernel_maps(machine);
 
        thread__find_addr_map(thread, cpumode, MAP__FUNCTION, sample->ip, al);
index 03ff072b59938d70b6af30c8b062686425203116..97f963a3dcb95157f8dcaf3e568d3ac487989608 100644 (file)
@@ -1268,7 +1268,7 @@ static u64 intel_pt_switch_ip(struct intel_pt *pt, u64 *ptss_ip)
        if (ptss_ip)
                *ptss_ip = 0;
 
-       map = machine__kernel_map(machine, MAP__FUNCTION);
+       map = machine__kernel_map(machine);
        if (!map)
                return 0;
 
index d71b7dcf45791ccf4e44dde671d46c2d4a1e42a2..76fe167c359e1b95769b3e506facbaa3d974cc51 100644 (file)
@@ -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__kernel_map(machine, MAP__FUNCTION)->dso;
+       struct dso *kdso = machine__kernel_map(machine)->dso;
 
        if (kdso->has_build_id) {
                char filename[PATH_MAX];
@@ -750,7 +750,7 @@ 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;
-               map = machine__kernel_map(machine, type);
+               map = __machine__kernel_map(machine, type);
                kmap = map__kmap(map);
                if (!kmap)
                        return -1;
@@ -768,7 +768,7 @@ 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);
+               struct map *map = __machine__kernel_map(machine, type);
 
                if (map == NULL)
                        continue;
@@ -868,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__kernel_map(machine, MAP__FUNCTION);
+       struct map *map = machine__kernel_map(machine);
        int ret = dso__load_kallsyms(map->dso, filename, map, filter);
 
        if (ret > 0) {
@@ -887,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__kernel_map(machine, MAP__FUNCTION);
+       struct map *map = machine__kernel_map(machine);
        int ret = dso__load_vmlinux_path(map->dso, map, filter);
 
        if (ret > 0)
@@ -1245,8 +1245,7 @@ static int machine__process_kernel_mmap_event(struct machine *machine,
                        /*
                         * preload dso of guest kernel and modules
                         */
-                       dso__load(kernel, machine__kernel_map(machine, MAP__FUNCTION),
-                                 NULL);
+                       dso__load(kernel, machine__kernel_map(machine), NULL);
                }
        }
        return 0;
@@ -1998,7 +1997,7 @@ int machine__set_current_tid(struct machine *machine, int cpu, pid_t pid,
 
 int machine__get_kernel_start(struct machine *machine)
 {
-       struct map *map = machine__kernel_map(machine, MAP__FUNCTION);
+       struct map *map = machine__kernel_map(machine);
        int err = 0;
 
        /*
index 9dfc4281f9401de34dd21560fced74fb7fa5d794..2c2b443df5ba796c43ee12c6c0f2061b5d7c7b80 100644 (file)
@@ -48,11 +48,17 @@ struct machine {
 };
 
 static inline
-struct map *machine__kernel_map(struct machine *machine, enum map_type type)
+struct map *__machine__kernel_map(struct machine *machine, enum map_type type)
 {
        return machine->vmlinux_maps[type];
 }
 
+static inline
+struct map *machine__kernel_map(struct machine *machine)
+{
+       return __machine__kernel_map(machine, MAP__FUNCTION);
+}
+
 int machine__get_kernel_start(struct machine *machine);
 
 static inline u64 machine__kernel_start(struct machine *machine)
index 2a9d859d30b9e28995309a2647d3eabba7c3bff5..4e38c396a897ad9599d1addb1fb464b5cdfa4129 100644 (file)
@@ -235,7 +235,7 @@ struct map *map__new2(u64 start, struct dso *dso, enum map_type type)
  */
 bool __map__is_kernel(const struct map *map)
 {
-       return machine__kernel_map(map->groups->machine, map->type) == map;
+       return __machine__kernel_map(map->groups->machine, map->type) == map;
 }
 
 static void map__exit(struct map *map)
index a0b3f3c886f0377863a43af5a6d3f8b58fef4bb3..8b9a6807dab4390b90c7ca0a389182dba6d2e39a 100644 (file)
@@ -126,7 +126,7 @@ static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
 {
        /* kmap->ref_reloc_sym should be set if host_machine is initialized */
        struct kmap *kmap;
-       struct map *map = machine__kernel_map(host_machine, MAP__FUNCTION);
+       struct map *map = machine__kernel_map(host_machine);
 
        if (map__load(map, NULL) < 0)
                return NULL;
@@ -282,7 +282,7 @@ static int kernel_get_module_dso(const char *module, struct dso **pdso)
                return -ENOENT;
        }
 
-       map = machine__kernel_map(host_machine, MAP__FUNCTION);
+       map = machine__kernel_map(host_machine);
        dso = map->dso;
 
        vmlinux_name = symbol_conf.vmlinux_name;