mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-01 10:13:58 +08:00
perf symbols: Use kmaps(map)->machine when we know its a kernel map
And then stop using map->groups to achieve that. To test that that branch is being taken, probe the function that is only called from there and then run something like 'perf top' in another xterm: # perf probe -x ~/bin/perf machine__map_x86_64_entry_trampolines Added new event: probe_perf:machine__map_x86_64_entry_trampolines (on machine__map_x86_64_entry_trampolines in /home/acme/bin/perf) You can now use it in all perf tools, such as: perf record -e probe_perf:machine__map_x86_64_entry_trampolines -aR sleep 1 # perf trace -e probe_perf:* 0.000 bash/10614 probe_perf:machine__map_x86_64_entry_trampolines(__probe_ip: 5224944) ^C# Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lkml.kernel.org/n/tip-lgrrzdxo2p9liq2keivcg887@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
d46a4cdf49
commit
93fcce96c7
@ -1588,7 +1588,7 @@ int dso__load(struct dso *dso, struct map *map)
|
||||
char *name;
|
||||
int ret = -1;
|
||||
u_int i;
|
||||
struct machine *machine;
|
||||
struct machine *machine = NULL;
|
||||
char *root_dir = (char *) "";
|
||||
int ss_pos = 0;
|
||||
struct symsrc ss_[2];
|
||||
@ -1617,17 +1617,13 @@ int dso__load(struct dso *dso, struct map *map)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (map->groups)
|
||||
machine = map->groups->machine;
|
||||
else
|
||||
machine = NULL;
|
||||
|
||||
if (dso->kernel) {
|
||||
if (dso->kernel == DSO_TYPE_KERNEL)
|
||||
ret = dso__load_kernel_sym(dso, map);
|
||||
else if (dso->kernel == DSO_TYPE_GUEST_KERNEL)
|
||||
ret = dso__load_guest_kernel_sym(dso, map);
|
||||
|
||||
machine = map__kmaps(map)->machine;
|
||||
if (machine__is(machine, "x86_64"))
|
||||
machine__map_x86_64_entry_trampolines(machine, dso);
|
||||
goto out;
|
||||
@ -2027,15 +2023,9 @@ static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map)
|
||||
{
|
||||
int err;
|
||||
const char *kallsyms_filename = NULL;
|
||||
struct machine *machine;
|
||||
struct machine *machine = map__kmaps(map)->machine;
|
||||
char path[PATH_MAX];
|
||||
|
||||
if (!map->groups) {
|
||||
pr_debug("Guest kernel map hasn't the point to groups\n");
|
||||
return -1;
|
||||
}
|
||||
machine = map->groups->machine;
|
||||
|
||||
if (machine__is_default_guest(machine)) {
|
||||
/*
|
||||
* if the user specified a vmlinux filename, use it and only
|
||||
|
Loading…
Reference in New Issue
Block a user