perf symbols: Remove symbol_filter_t machinery
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: be39db9f2932f0ce4e116c71ba5ae2b542e536a7 Gitweb: http://git.kernel.org/tip/be39db9f2932f0ce4e116c71ba5ae2b542e536a7 Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Thu, 1 Sep 2016 19:25:52 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 5 Sep 2016 11:14:50 -0300
perf symbols: Remove symbol_filter_t machinery
We're not using it anymore, few users were, but we really could do without it, simplify lots of functions by removing it.
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Masami Hiramatsu <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/arch/powerpc/util/sym-handling.c | 2 +- tools/perf/builtin-inject.c | 2 +- tools/perf/builtin-kmem.c | 10 ++- tools/perf/builtin-script.c | 4 +- tools/perf/tests/code-reading.c | 4 +- tools/perf/tests/vmlinux-kallsyms.c | 8 +-- tools/perf/ui/browsers/annotate.c | 2 +- tools/perf/ui/browsers/map.c | 4 +- tools/perf/util/annotate.c | 2 +- tools/perf/util/event.c | 8 +-- tools/perf/util/intel-bts.c | 2 +- tools/perf/util/intel-pt.c | 4 +- tools/perf/util/machine.c | 19 +++--- tools/perf/util/machine.h | 30 +++----- tools/perf/util/map.c | 37 ++++------ tools/perf/util/map.h | 32 ++++----- tools/perf/util/probe-event.c | 17 +++-- tools/perf/util/symbol-elf.c | 32 +++------ tools/perf/util/symbol-minimal.c | 4 +- tools/perf/util/symbol.c | 102 ++++++++++++---------------- tools/perf/util/symbol.h | 18 ++--- 21 files changed, 141 insertions(+), 202 deletions(-)
tools/perf/arch/powerpc/util/sym-handling.c +1 -1
@@ -108,7 +108,7 @@ void arch__post_process_probe_trace_events(struct perf_probe_event *pev,int i =0 ; map =get_target_map (pev->target, pev->uprobes); -if (!map ||map__load (map,NULL ) <0 ) +if (!map ||map__load (map) <0 )return ;for (i =0 ; i < ntevs; i++) {
tools/perf/builtin-inject.c +1 -1
@@ -429,7 +429,7 @@ static int perf_event__inject_buildid(struct perf_tool *tool,if (al.map !=NULL ) {if (!al.map->dso->hit) { al.map->dso->hit =1 ; -if (map__load (al.map,NULL ) >=0 ) { +if (map__load (al.map) >=0 ) {dso__inject_build_id (al.map->dso, tool, machine);/* * If this fails, too bad, let the other side
tools/perf/builtin-kmem.c +4 -6
@@ -330,7 +330,7 @@ static int build_alloc_func_list(void) } kernel_map =machine__kernel_map (machine); -if (map__load (kernel_map,NULL ) <0 ) { +if (map__load (kernel_map) <0 ) {pr_err ("cannot load kernel map\n" );return -ENOENT ; }
@@ -979,7 +979,7 @@ static void __print_slab_result(struct rb_root *root,if (is_caller) { addr = data->call_site;if (!raw_ip) - sym =machine__find_kernel_function (machine, addr, &map,NULL ); + sym =machine__find_kernel_function (machine, addr, &map); }else addr = data->ptr;
@@ -1043,8 +1043,7 @@ static void __print_page_alloc_result(struct perf_session *session, int n_lines)char *caller = buf; data = rb_entry(next, struct page_stat, node); - sym =machine__find_kernel_function (machine, data->callsite, - &map,NULL ); + sym =machine__find_kernel_function (machine, data->callsite, &map);if (sym && sym->name) caller = sym->name;else
@@ -1086,8 +1085,7 @@ static void __print_page_caller_result(struct perf_session *session, int n_lineschar *caller = buf; data = rb_entry(next, struct page_stat, node); - sym =machine__find_kernel_function (machine, data->callsite, - &map,NULL ); + sym =machine__find_kernel_function (machine, data->callsite, &map);if (sym && sym->name) caller = sym->name;else
tools/perf/builtin-script.c +2 -2
@@ -522,11 +522,11 @@ static void print_sample_brstacksym(struct perf_sample *sample,thread__find_addr_map (thread, sample->cpumode,MAP__FUNCTION , from, &alf);if (alf.map) - alf.sym =map__find_symbol (alf.map, alf.addr,NULL ); + alf.sym =map__find_symbol (alf.map, alf.addr);thread__find_addr_map (thread, sample->cpumode,MAP__FUNCTION , to, &alt);if (alt.map) - alt.sym =map__find_symbol (alt.map, alt.addr,NULL ); + alt.sym =map__find_symbol (alt.map, alt.addr);symbol__fprintf_symname_offs (alf.sym, &alf, stdout);putchar ('/' );
tools/perf/tests/code-reading.c +2 -2
@@ -263,7 +263,7 @@ static int read_object_code(u64 addr, size_t len, u8 cpumode,* Converting addresses for use by objdump requires more information. * map__load() does that. See map__rip_2objdump() for details. */ -if (map__load (al.map,NULL )) +if (map__load (al.map))return -1 ;/* objdump struggles with kcore - try each map only once */
@@ -511,7 +511,7 @@ static int do_test_code_reading(bool try_kcore)/* Load kernel map */ map =machine__kernel_map (machine); - ret =map__load (map,NULL ); + ret =map__load (map);if (ret <0 ) {pr_debug ("map__load failed\n" ); goto out_err;
tools/perf/tests/vmlinux-kallsyms.c +4 -4
@@ -54,7 +54,7 @@ int test__vmlinux_matches_kallsyms(int subtest __maybe_unused)* be compacted against the list of modules found in the "vmlinux" * code and with the one got from /proc/modules from the "kallsyms" code. */ -if (__machine__load_kallsyms (&kallsyms,"/proc/kallsyms" , type, true,NULL ) <=0 ) { +if (__machine__load_kallsyms (&kallsyms,"/proc/kallsyms" , type, true) <=0 ) {pr_debug ("dso__load_kallsyms " ); goto out; }
@@ -92,7 +92,7 @@ int test__vmlinux_matches_kallsyms(int subtest __maybe_unused)* maps__reloc_vmlinux will notice and set proper ->[un]map_ip routines * to fixup the symbols. */ -if (machine__load_vmlinux_path (&vmlinux, type,NULL ) <=0 ) { +if (machine__load_vmlinux_path (&vmlinux, type) <=0 ) {pr_debug ("Couldn't find a vmlinux that matches the kernel running on this machine, skipping test\n" ); err =TEST_SKIP ; goto out;
@@ -118,7 +118,7 @@ int test__vmlinux_matches_kallsyms(int subtest __maybe_unused) mem_end = vmlinux_map->unmap_ip (vmlinux_map, sym->end); first_pair =machine__find_kernel_symbol (&kallsyms, type, - mem_start,NULL ,NULL ); + mem_start,NULL ); pair = first_pair;if (pair &&UM (pair->start) == mem_start) {
@@ -147,7 +147,7 @@ next_pair:*/ continue ; }else { - pair =machine__find_kernel_symbol_by_name (&kallsyms, type, sym->name,NULL ,NULL ); + pair =machine__find_kernel_symbol_by_name (&kallsyms, type, sym->name,NULL );if (pair) {if (UM (pair->start) == mem_start) goto next_pair;
tools/perf/ui/browsers/annotate.c +1 -1
@@ -495,7 +495,7 @@ static bool annotate_browser__callq(struct annotate_browser *browser,if (!ins__is_call (dl->ins))return false; -if (map_groups__find_ams (&target,NULL ) || +if (map_groups__find_ams (&target) ||map__rip_2objdump (target.map, target.map->map_ip (target.map, target.addr)) != dl->ops.target.addr) {
tools/perf/ui/browsers/map.c +2 -2
@@ -52,9 +52,9 @@ static int map_browser__search(struct map_browser *browser)if (target[0 ] =='0' &&tolower (target[1 ]) =='x' ) {u64 addr =strtoull (target,NULL ,16 ); - sym =map__find_symbol (browser->map, addr,NULL ); + sym =map__find_symbol (browser->map, addr); }else - sym =map__find_symbol_by_name (browser->map, target,NULL ); + sym =map__find_symbol_by_name (browser->map, target);if (sym !=NULL ) {u32 *idx =symbol__browser_index (sym);
tools/perf/util/annotate.c +1 -1
@@ -1077,7 +1077,7 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map, .addr = dl->ops.target.addr, }; -if (!map_groups__find_ams (&target,NULL ) && +if (!map_groups__find_ams (&target) && target.sym->start == target.al_addr) dl->ops.target.name =strdup (target.sym->name); }
tools/perf/util/event.c +4 -4
@@ -1286,7 +1286,7 @@ try_again:* must be done prior to using kernel maps. */ if (load_map) -map__load (al->map,NULL ); +map__load (al->map); al->addr = al->map->map_ip (al->map, al->addr); } }
@@ -1297,7 +1297,7 @@ void thread__find_addr_location(struct thread *thread, {thread__find_addr_map (thread, cpumode, type, addr, al);if (al->map !=NULL ) - al->sym =map__find_symbol (al->map, al->addr,NULL ); + al->sym =map__find_symbol (al->map, al->addr);else al->sym =NULL ; }
@@ -1358,7 +1358,7 @@ int machine__resolve(struct machine *machine, struct addr_location *al, al->filtered |= (1 <<HIST_FILTER__DSO ); } - al->sym =map__find_symbol (al->map, al->addr,NULL ); + al->sym =map__find_symbol (al->map, al->addr); } if (symbol_conf.sym_list &&
@@ -1414,5 +1414,5 @@ void thread__resolve(struct thread *thread, struct addr_location *al, al->sym =NULL ;if (al->map) - al->sym =map__find_symbol (al->map, al->addr,NULL ); + al->sym =map__find_symbol (al->map, al->addr); }
tools/perf/util/intel-bts.c +1 -1
@@ -346,7 +346,7 @@ static int intel_bts_get_next_insn(struct intel_bts_queue *btsq, u64 ip) goto out_put;/* Load maps to ensure dso->is_64_bit has been updated */ -map__load (al.map,NULL ); +map__load (al.map); x86_64 = al.map->dso->is_64_bit;
tools/perf/util/intel-pt.c +2 -2
@@ -477,7 +477,7 @@ static int intel_pt_walk_next_insn(struct intel_pt_insn *intel_pt_insn, start_ip = *ip;/* Load maps to ensure dso->is_64_bit has been updated */ -map__load (al.map,NULL ); +map__load (al.map); x86_64 = al.map->dso->is_64_bit;
@@ -1294,7 +1294,7 @@ static u64 intel_pt_switch_ip(struct intel_pt *pt, u64 *ptss_ip)if (!map)return 0 ; -if (map__load (map,NULL )) +if (map__load (map))return 0 ; start =dso__first_symbol (map->dso,MAP__FUNCTION );
tools/perf/util/machine.c +9 -10
@@ -897,10 +897,10 @@ 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,bool no_kcore,symbol_filter_t filter) +enum map_type type,bool no_kcore) {struct map *map =machine__kernel_map (machine); -int ret =__dso__load_kallsyms (map->dso, filename, map, no_kcore, filter); +int ret =__dso__load_kallsyms (map->dso, filename, map, no_kcore);if (ret >0 ) {dso__set_loaded (map->dso, type);
@@ -916,16 +916,15 @@ int __machine__load_kallsyms(struct machine *machine, const char *filename, }int machine__load_kallsyms (struct machine *machine,const char *filename, -enum map_type type,symbol_filter_t filter) +enum map_type type) { -return __machine__load_kallsyms (machine, filename, type, false, filter); +return __machine__load_kallsyms (machine, filename, type, false); } -int machine__load_vmlinux_path (struct machine *machine,enum map_type type, -symbol_filter_t filter) +int machine__load_vmlinux_path (struct machine *machine,enum map_type type) {struct map *map =machine__kernel_map (machine); -int ret =dso__load_vmlinux_path (map->dso, map, filter); +int ret =dso__load_vmlinux_path (map->dso, map);if (ret >0 )dso__set_loaded (map->dso, type);
@@ -1294,7 +1293,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),NULL ); +dso__load (kernel,machine__kernel_map (machine)); } }return 0 ;
@@ -2096,7 +2095,7 @@ int machine__get_kernel_start(struct machine *machine)*/ machine->kernel_start =1ULL <<63 ;if (map) { - err =map__load (map,NULL ); + err =map__load (map);if (map->start) machine->kernel_start = map->start; }
@@ -2112,7 +2111,7 @@ char *machine__resolve_kernel_addr(void *vmachine, unsigned long long *addrp, ch {struct machine *machine = vmachine;struct map *map; -struct symbol *sym =map_groups__find_symbol (&machine->kmaps,MAP__FUNCTION , *addrp, &map,NULL ); +struct symbol *sym =map_groups__find_symbol (&machine->kmaps,MAP__FUNCTION , *addrp, &map);if (sym ==NULL )return NULL ;
tools/perf/util/machine.h +11 -19
@@ -174,40 +174,33 @@ size_t machine__fprintf(struct machine *machine, FILE *fp);static inline struct symbol *machine__find_kernel_symbol (struct machine *machine,enum map_type type,u64 addr, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) { -return map_groups__find_symbol (&machine->kmaps, type, addr, - mapp, filter); +return map_groups__find_symbol (&machine->kmaps, type, addr, mapp); }static inline struct symbol *machine__find_kernel_symbol_by_name (struct machine *machine,enum map_type type,const char *name, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) { -return map_groups__find_symbol_by_name (&machine->kmaps, type, name, - mapp, filter); +return map_groups__find_symbol_by_name (&machine->kmaps, type, name, mapp); }static inline struct symbol *machine__find_kernel_function (struct machine *machine,u64 addr, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) {return machine__find_kernel_symbol (machine,MAP__FUNCTION , addr, - mapp, filter); + mapp); }static inline struct symbol *machine__find_kernel_function_by_name (struct machine *machine,const char *name, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) { -return map_groups__find_function_by_name (&machine->kmaps, name, mapp, - filter); +return map_groups__find_function_by_name (&machine->kmaps, name, mapp); } struct map *machine__findnew_module_map(struct machine *machine, u64 start,
@@ -215,11 +208,10 @@ struct map *machine__findnew_module_map(struct machine *machine, u64 start,int arch__fix_module_text_start (u64 *start,const char *name);int __machine__load_kallsyms (struct machine *machine,const char *filename, -enum map_type type,bool no_kcore,symbol_filter_t filter); +enum map_type type,bool no_kcore);int machine__load_kallsyms (struct machine *machine,const char *filename, -enum map_type type,symbol_filter_t filter); -int machine__load_vmlinux_path (struct machine *machine,enum map_type type, -symbol_filter_t filter); +enum map_type type); +int machine__load_vmlinux_path (struct machine *machine,enum map_type type);size_t machine__fprintf_dsos_buildid (struct machine *machine,FILE *fp,bool (skip )(struct dso *dso,int parm),int parm);
tools/perf/util/map.c +15 -22
@@ -279,7 +279,7 @@ void map__fixup_end(struct map *map)#define DSO__DELETED "(deleted)" -int map__load (struct map *map,symbol_filter_t filter) +int map__load (struct map *map) {const char *name = map->dso->long_name;int nr;
@@ -287,7 +287,7 @@ int map__load(struct map *map, symbol_filter_t filter)if (dso__loaded (map->dso, map->type))return 0 ; - nr =dso__load (map->dso, map, filter); + nr =dso__load (map->dso, map);if (nr <0 ) {if (map->dso->has_build_id) {char sbuild_id[SBUILD_ID_SIZE ];
@@ -312,9 +312,6 @@ int map__load(struct map *map, symbol_filter_t filter)pr_warning ("%.*s was updated (is prelink enabled?). " "Restart the long running apps that use it!\n" , (int )real_len, name); - }else if (filter) { -pr_warning ("no symbols passed the given filter.\n" ); -return -2 ;/* Empty but maybe by the filter */ }else {pr_warning ("no symbols found in %s, maybe install " "a debug package?\n" , name);
@@ -331,19 +328,17 @@ int __weak arch__compare_symbol_names(const char *namea, const char *nameb)return strcmp (namea, nameb); } -struct symbol *map__find_symbol (struct map *map,u64 addr, -symbol_filter_t filter) +struct symbol *map__find_symbol (struct map *map,u64 addr) { -if (map__load (map, filter) <0 ) +if (map__load (map) <0 )return NULL ;return dso__find_symbol (map->dso, map->type, addr); } -struct symbol *map__find_symbol_by_name (struct map *map,const char *name, -symbol_filter_t filter) +struct symbol *map__find_symbol_by_name (struct map *map,const char *name) { -if (map__load (map, filter) <0 ) +if (map__load (map) <0 )return NULL ;if (!dso__sorted_by_name (map->dso, map->type))
@@ -556,23 +551,22 @@ void map_groups__put(struct map_groups *mg)struct symbol *map_groups__find_symbol (struct map_groups *mg,enum map_type type,u64 addr, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) {struct map *map =map_groups__find (mg, type, addr);/* Ensure map is loaded before using map->map_ip */ -if (map !=NULL &&map__load (map, filter) >=0 ) { +if (map !=NULL &&map__load (map) >=0 ) {if (mapp !=NULL ) *mapp = map; -return map__find_symbol (map, map->map_ip (map, addr), filter); +return map__find_symbol (map, map->map_ip (map, addr)); }return NULL ; }struct symbol *maps__find_symbol_by_name (struct maps *maps,const char *name, -struct map **mapp,symbol_filter_t filter) +struct map **mapp) {struct symbol *sym;struct rb_node *nd;
@@ -582,7 +576,7 @@ struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name,for (nd =rb_first (&maps->entries); nd; nd =rb_next (nd)) { struct map *pos = rb_entry(nd, struct map, rb_node); - sym =map__find_symbol_by_name (pos, name, filter); + sym =map__find_symbol_by_name (pos, name);if (sym ==NULL )continue ;
@@ -600,15 +594,14 @@ out:struct symbol *map_groups__find_symbol_by_name (struct map_groups *mg,enum map_type type,const char *name, -struct map **mapp, -symbol_filter_t filter) +struct map **mapp) { -struct symbol *sym =maps__find_symbol_by_name (&mg->maps[type], name, mapp, filter); +struct symbol *sym =maps__find_symbol_by_name (&mg->maps[type], name, mapp);return sym; } -int map_groups__find_ams (struct addr_map_symbol *ams,symbol_filter_t filter) +int map_groups__find_ams (struct addr_map_symbol *ams) {if (ams->addr < ams->map->start || ams->addr >= ams->map->end) {if (ams->map->groups ==NULL )
@@ -620,7 +613,7 @@ int map_groups__find_ams(struct addr_map_symbol *ams, symbol_filter_t filter) } ams->al_addr = ams->map->map_ip (ams->map, ams->addr); - ams->sym =map__find_symbol (ams->map, ams->al_addr, filter); + ams->sym =map__find_symbol (ams->map, ams->al_addr);return ams->sym ?0 :-1 ; }
tools/perf/util/map.h +12 -20
@@ -127,17 +127,14 @@ struct thread;* @map: the 'struct map *' in which symbols itereated * @sym_name: the symbol name * @pos: the 'struct symbol *' to use as a loop cursor -* @filter: to use when loading the DSO */ -#define __map__for_each_symbol_by_name (map, sym_name, pos, filter) \ - for (pos = map__find_symbol_by_name(map, sym_name, filter); \ +#define __map__for_each_symbol_by_name (map, sym_name, pos) \ + for (pos = map__find_symbol_by_name(map, sym_name); \ pos && arch__compare_symbol_names(pos->name, sym_name) == 0; \ pos = symbol__next_by_name(pos))#define map__for_each_symbol_by_name (map, sym_name, pos) \ - __map__for_each_symbol_by_name(map, sym_name, (pos), NULL) - -typedef int (*symbol_filter_t )(struct map *map,struct symbol *sym); + __map__for_each_symbol_by_name(map, sym_name, (pos))int arch__compare_symbol_names (const char *namea,const char *nameb); void map__init(struct map *map, enum map_type type,
@@ -173,11 +170,9 @@ size_t map__fprintf_dsoname(struct map *map, FILE *fp);int map__fprintf_srcline (struct map *map,u64 addr,const char *prefix,FILE *fp); -int map__load (struct map *map,symbol_filter_t filter); -struct symbol *map__find_symbol (struct map *map, -u64 addr,symbol_filter_t filter); -struct symbol *map__find_symbol_by_name (struct map *map,const char *name, -symbol_filter_t filter); +int map__load (struct map *map); +struct symbol *map__find_symbol (struct map *map,u64 addr); +struct symbol *map__find_symbol_by_name (struct map *map,const char *name);void map__fixup_start (struct map *map);void map__fixup_end (struct map *map);
@@ -191,7 +186,7 @@ struct map *maps__find(struct maps *maps, u64 addr);struct map *maps__first (struct maps *maps);struct map *map__next (struct map *map);struct symbol *maps__find_symbol_by_name (struct maps *maps,const char *name, -struct map **mapp,symbol_filter_t filter); +struct map **mapp);void map_groups__init (struct map_groups *mg,struct machine *machine);void map_groups__exit (struct map_groups *mg); int map_groups__clone(struct thread *thread,
@@ -231,25 +226,22 @@ static inline struct map *map_groups__next(struct map *map)struct symbol *map_groups__find_symbol (struct map_groups *mg,enum map_type type,u64 addr, -struct map **mapp, -symbol_filter_t filter); +struct map **mapp);struct symbol *map_groups__find_symbol_by_name (struct map_groups *mg,enum map_type type,const char *name, -struct map **mapp, -symbol_filter_t filter); +struct map **mapp);struct addr_map_symbol ; -int map_groups__find_ams (struct addr_map_symbol *ams,symbol_filter_t filter); +int map_groups__find_ams (struct addr_map_symbol *ams);static inline struct symbol *map_groups__find_function_by_name (struct map_groups *mg, -const char *name,struct map **mapp, -symbol_filter_t filter) +const char *name,struct map **mapp) { -return map_groups__find_symbol_by_name (mg,MAP__FUNCTION , name, mapp, filter); +return map_groups__find_symbol_by_name (mg,MAP__FUNCTION , name, mapp); } int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
tools/perf/util/probe-event.c +8 -9
@@ -110,13 +110,12 @@ void exit_probe_symbol_maps(void)static struct symbol *__find_kernel_function_by_name (const char *name,struct map **mapp) { -return machine__find_kernel_function_by_name (host_machine, name, mapp, -NULL ); +return machine__find_kernel_function_by_name (host_machine, name, mapp); }static struct symbol *__find_kernel_function (u64 addr,struct map **mapp) { -return machine__find_kernel_function (host_machine, addr, mapp,NULL ); +return machine__find_kernel_function (host_machine, addr, mapp); }static struct ref_reloc_sym *kernel_get_ref_reloc_sym (void )
@@ -125,7 +124,7 @@ static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)struct kmap *kmap;struct map *map =machine__kernel_map (host_machine); -if (map__load (map,NULL ) <0 ) +if (map__load (map) <0 )return NULL ; kmap =map__kmap (map);
@@ -351,9 +350,9 @@ static int kernel_get_module_dso(const char *module, struct dso **pdso) vmlinux_name = symbol_conf.vmlinux_name; dso->load_errno =0 ;if (vmlinux_name) - ret =dso__load_vmlinux (dso, map, vmlinux_name, false,NULL ); + ret =dso__load_vmlinux (dso, map, vmlinux_name, false);else - ret =dso__load_vmlinux_path (dso, map,NULL ); + ret =dso__load_vmlinux_path (dso, map); found: *pdso = dso;return ret;
@@ -1999,7 +1998,7 @@ static int find_perf_probe_point_from_map(struct probe_trace_point *tp, map =dso__new_map (tp->module);if (!map) goto out; - sym =map__find_symbol (map, addr,NULL ); + sym =map__find_symbol (map, addr); }else {if (tp->symbol && !addr) { if (kernel_get_symbol_address_by_name(tp->symbol,
@@ -2704,7 +2703,7 @@ static int find_probe_functions(struct map *map, char *name,struct symbol *sym;struct rb_node *tmp; -if (map__load (map,NULL ) <0 ) +if (map__load (map) <0 )return 0 ;map__for_each_symbol (map, sym, tmp) {
@@ -3368,7 +3367,7 @@ int show_available_funcs(const char *target, struct strfilter *_filter,return -EINVAL ; } - ret =map__load (map,NULL ); + ret =map__load (map);if (ret) {if (ret ==-2 ) {char *str =strfilter__string (_filter);
tools/perf/util/symbol-elf.c +9 -23
@@ -254,8 +254,7 @@ static char *demangle_sym(struct dso *dso, int kmodule, const char *elf_name)* And always look at the original dso, not at debuginfo packages, that * have the PLT data stripped out (shdr_rel_plt.sh_type == SHT_NOBITS). */ -int dso__synthesize_plt_symbols (struct dso *dso,struct symsrc *ss,struct map *map, -symbol_filter_t filter) +int dso__synthesize_plt_symbols (struct dso *dso,struct symsrc *ss,struct map *map) {uint32_t nr_rel_entries, idx;GElf_Sym sym;
@@ -351,12 +350,8 @@ int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *if (!f) goto out_elf_end; -if (filter &&filter (map, f)) -symbol__delete (f); -else { -symbols__insert (&dso->symbols[map->type], f); - ++nr; - } +symbols__insert (&dso->symbols[map->type], f); + ++nr; } }else if (shdr_rel_plt.sh_type ==SHT_REL ) {GElf_Rel pos_mem, *pos;
@@ -381,12 +376,8 @@ int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *if (!f) goto out_elf_end; -if (filter &&filter (map, f)) -symbol__delete (f); -else { -symbols__insert (&dso->symbols[map->type], f); - ++nr; - } +symbols__insert (&dso->symbols[map->type], f); + ++nr; } }
@@ -825,9 +816,8 @@ static u64 ref_reloc(struct kmap *kmap)void __weak arch__sym_update (struct symbol *s__maybe_unused ,GElf_Sym *sym__maybe_unused ) { } -int dso__load_sym (struct dso *dso,struct map *map, -struct symsrc *syms_ss,struct symsrc *runtime_ss, -symbol_filter_t filter,int kmodule) +int dso__load_sym (struct dso *dso,struct map *map,struct symsrc *syms_ss, +struct symsrc *runtime_ss,int kmodule) {struct kmap *kmap = dso->kernel ?map__kmap (map) :NULL ;struct map_groups *kmaps = kmap ?map__kmaps (map) :NULL ;
@@ -1124,12 +1114,8 @@ new_symbol:arch__sym_update (f, &sym); -if (filter &&filter (curr_map, f)) -symbol__delete (f); -else { -__symbols__insert (&curr_dso->symbols[curr_map->type], f, dso->kernel); - nr++; - } +__symbols__insert (&curr_dso->symbols[curr_map->type], f, dso->kernel); + nr++; }/*
tools/perf/util/symbol-minimal.c +1 -3
@@ -287,8 +287,7 @@ void symsrc__destroy(struct symsrc *ss)int dso__synthesize_plt_symbols (struct dso *dso__maybe_unused ,struct symsrc *ss__maybe_unused , -struct map *map__maybe_unused , -symbol_filter_t filter__maybe_unused ) +struct map *map__maybe_unused ) {return 0 ; }
@@ -334,7 +333,6 @@ enum dso_type dso__type_fd(int fd)int dso__load_sym (struct dso *dso,struct map *map__maybe_unused ,struct symsrc *ss,struct symsrc *runtime_ss__maybe_unused , -symbol_filter_t filter__maybe_unused ,int kmodule__maybe_unused ) {unsigned char build_id[BUILD_ID_SIZE ];
tools/perf/util/symbol.c +44 -58
263 lines not on this page · raw message
tools/perf/util/symbol.h +7 -11
@@ -241,16 +241,13 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,bool symsrc__has_symtab (struct symsrc *ss);bool symsrc__possibly_runtime (struct symsrc *ss); -int dso__load (struct dso *dso,struct map *map,symbol_filter_t filter); +int dso__load (struct dso *dso,struct map *map);int dso__load_vmlinux (struct dso *dso,struct map *map, -const char *vmlinux,bool vmlinux_allocated, -symbol_filter_t filter); -int dso__load_vmlinux_path (struct dso *dso,struct map *map, -symbol_filter_t filter); +const char *vmlinux,bool vmlinux_allocated); +int dso__load_vmlinux_path (struct dso *dso,struct map *map);int __dso__load_kallsyms (struct dso *dso,const char *filename,struct map *map, -bool no_kcore,symbol_filter_t filter); -int dso__load_kallsyms (struct dso *dso,const char *filename,struct map *map, -symbol_filter_t filter); +bool no_kcore); +int dso__load_kallsyms (struct dso *dso,const char *filename,struct map *map);void dso__insert_symbol (struct dso *dso,enum map_type type,struct symbol *sym);
@@ -298,10 +295,9 @@ int symbol__config_symfs(const struct option *opt __maybe_unused, const char *dir, int unset __maybe_unused);int dso__load_sym (struct dso *dso,struct map *map,struct symsrc *syms_ss, -struct symsrc *runtime_ss,symbol_filter_t filter, -int kmodule); +struct symsrc *runtime_ss,int kmodule);int dso__synthesize_plt_symbols (struct dso *dso,struct symsrc *ss, -struct map *map,symbol_filter_t filter); +struct map *map);void __symbols__insert (struct rb_root *symbols,struct symbol *sym,bool kernel);void symbols__insert (struct rb_root *symbols,struct symbol *sym);