mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 04:06:26 +00:00
perf machine: Ditch find_kernel_function variants
Since we do not have split symtabs anymore, no need to have explicit find_kernel_function variants, use the find_kernel_symbol ones. 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-hiw2ryflju000f6wl62128it@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
246907611e
commit
107cad95ff
@ -27,7 +27,7 @@ static int __cmd_kallsyms(int argc, const char **argv)
|
|||||||
|
|
||||||
for (i = 0; i < argc; ++i) {
|
for (i = 0; i < argc; ++i) {
|
||||||
struct map *map;
|
struct map *map;
|
||||||
struct symbol *symbol = machine__find_kernel_function_by_name(machine, argv[i], &map);
|
struct symbol *symbol = machine__find_kernel_symbol_by_name(machine, argv[i], &map);
|
||||||
|
|
||||||
if (symbol == NULL) {
|
if (symbol == NULL) {
|
||||||
printf("%s: not found\n", argv[i]);
|
printf("%s: not found\n", argv[i]);
|
||||||
|
@ -1004,7 +1004,7 @@ static void __print_slab_result(struct rb_root *root,
|
|||||||
if (is_caller) {
|
if (is_caller) {
|
||||||
addr = data->call_site;
|
addr = data->call_site;
|
||||||
if (!raw_ip)
|
if (!raw_ip)
|
||||||
sym = machine__find_kernel_function(machine, addr, &map);
|
sym = machine__find_kernel_symbol(machine, addr, &map);
|
||||||
} else
|
} else
|
||||||
addr = data->ptr;
|
addr = data->ptr;
|
||||||
|
|
||||||
@ -1068,7 +1068,7 @@ static void __print_page_alloc_result(struct perf_session *session, int n_lines)
|
|||||||
char *caller = buf;
|
char *caller = buf;
|
||||||
|
|
||||||
data = rb_entry(next, struct page_stat, node);
|
data = rb_entry(next, struct page_stat, node);
|
||||||
sym = machine__find_kernel_function(machine, data->callsite, &map);
|
sym = machine__find_kernel_symbol(machine, data->callsite, &map);
|
||||||
if (sym)
|
if (sym)
|
||||||
caller = sym->name;
|
caller = sym->name;
|
||||||
else
|
else
|
||||||
@ -1110,7 +1110,7 @@ static void __print_page_caller_result(struct perf_session *session, int n_lines
|
|||||||
char *caller = buf;
|
char *caller = buf;
|
||||||
|
|
||||||
data = rb_entry(next, struct page_stat, node);
|
data = rb_entry(next, struct page_stat, node);
|
||||||
sym = machine__find_kernel_function(machine, data->callsite, &map);
|
sym = machine__find_kernel_symbol(machine, data->callsite, &map);
|
||||||
if (sym)
|
if (sym)
|
||||||
caller = sym->name;
|
caller = sym->name;
|
||||||
else
|
else
|
||||||
|
@ -118,7 +118,7 @@ int test__vmlinux_matches_kallsyms(struct test *test __maybe_unused, int subtest
|
|||||||
mem_start = vmlinux_map->unmap_ip(vmlinux_map, sym->start);
|
mem_start = vmlinux_map->unmap_ip(vmlinux_map, sym->start);
|
||||||
mem_end = vmlinux_map->unmap_ip(vmlinux_map, sym->end);
|
mem_end = vmlinux_map->unmap_ip(vmlinux_map, sym->end);
|
||||||
|
|
||||||
first_pair = machine__find_kernel_function(&kallsyms, mem_start, NULL);
|
first_pair = machine__find_kernel_symbol(&kallsyms, mem_start, NULL);
|
||||||
pair = first_pair;
|
pair = first_pair;
|
||||||
|
|
||||||
if (pair && UM(pair->start) == mem_start) {
|
if (pair && UM(pair->start) == mem_start) {
|
||||||
@ -147,7 +147,7 @@ int test__vmlinux_matches_kallsyms(struct test *test __maybe_unused, int subtest
|
|||||||
*/
|
*/
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
pair = machine__find_kernel_function_by_name(&kallsyms, sym->name, NULL);
|
pair = machine__find_kernel_symbol_by_name(&kallsyms, sym->name, NULL);
|
||||||
if (pair) {
|
if (pair) {
|
||||||
if (UM(pair->start) == mem_start)
|
if (UM(pair->start) == mem_start)
|
||||||
goto next_pair;
|
goto next_pair;
|
||||||
|
@ -2327,7 +2327,7 @@ char *machine__resolve_kernel_addr(void *vmachine, unsigned long long *addrp, ch
|
|||||||
{
|
{
|
||||||
struct machine *machine = vmachine;
|
struct machine *machine = vmachine;
|
||||||
struct map *map;
|
struct map *map;
|
||||||
struct symbol *sym = machine__find_kernel_function(machine, *addrp, &map);
|
struct symbol *sym = machine__find_kernel_symbol(machine, *addrp, &map);
|
||||||
|
|
||||||
if (sym == NULL)
|
if (sym == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -210,21 +210,6 @@ struct symbol *machine__find_kernel_symbol_by_name(struct machine *machine,
|
|||||||
return map_groups__find_symbol_by_name(&machine->kmaps, name, mapp);
|
return map_groups__find_symbol_by_name(&machine->kmaps, name, mapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
|
||||||
struct symbol *machine__find_kernel_function(struct machine *machine, u64 addr,
|
|
||||||
struct map **mapp)
|
|
||||||
{
|
|
||||||
return machine__find_kernel_symbol(machine, addr, mapp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
struct symbol *machine__find_kernel_function_by_name(struct machine *machine,
|
|
||||||
const char *name,
|
|
||||||
struct map **mapp)
|
|
||||||
{
|
|
||||||
return map_groups__find_function_by_name(&machine->kmaps, name, mapp);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct map *machine__findnew_module_map(struct machine *machine, u64 start,
|
struct map *machine__findnew_module_map(struct machine *machine, u64 start,
|
||||||
const char *filename);
|
const char *filename);
|
||||||
int arch__fix_module_text_start(u64 *start, const char *name);
|
int arch__fix_module_text_start(u64 *start, const char *name);
|
||||||
|
@ -225,13 +225,6 @@ struct addr_map_symbol;
|
|||||||
|
|
||||||
int map_groups__find_ams(struct addr_map_symbol *ams);
|
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)
|
|
||||||
{
|
|
||||||
return map_groups__find_symbol_by_name(mg, name, mapp);
|
|
||||||
}
|
|
||||||
|
|
||||||
int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
|
int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
|
||||||
FILE *fp);
|
FILE *fp);
|
||||||
|
|
||||||
|
@ -111,17 +111,6 @@ void exit_probe_symbol_maps(void)
|
|||||||
symbol__exit();
|
symbol__exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct symbol *__find_kernel_function(u64 addr, struct map **mapp)
|
|
||||||
{
|
|
||||||
return machine__find_kernel_function(host_machine, addr, mapp);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
|
static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
|
||||||
{
|
{
|
||||||
/* kmap->ref_reloc_sym should be set if host_machine is initialized */
|
/* kmap->ref_reloc_sym should be set if host_machine is initialized */
|
||||||
@ -149,7 +138,7 @@ static int kernel_get_symbol_address_by_name(const char *name, u64 *addr,
|
|||||||
if (reloc_sym && strcmp(name, reloc_sym->name) == 0)
|
if (reloc_sym && strcmp(name, reloc_sym->name) == 0)
|
||||||
*addr = (reloc) ? reloc_sym->addr : reloc_sym->unrelocated_addr;
|
*addr = (reloc) ? reloc_sym->addr : reloc_sym->unrelocated_addr;
|
||||||
else {
|
else {
|
||||||
sym = __find_kernel_function_by_name(name, &map);
|
sym = machine__find_kernel_symbol_by_name(host_machine, name, &map);
|
||||||
if (!sym)
|
if (!sym)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
*addr = map->unmap_ip(map, sym->start) -
|
*addr = map->unmap_ip(map, sym->start) -
|
||||||
@ -2097,7 +2086,7 @@ static int find_perf_probe_point_from_map(struct probe_trace_point *tp,
|
|||||||
}
|
}
|
||||||
if (addr) {
|
if (addr) {
|
||||||
addr += tp->offset;
|
addr += tp->offset;
|
||||||
sym = __find_kernel_function(addr, &map);
|
sym = machine__find_kernel_symbol(host_machine, addr, &map);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user