perf machine: Fix mmap name setup
Jiri Olsa
reviewerPATCH 1/1 perf machine: Fix mmap name setup
Leo reported broken -k option behavior. The reason is that we used symbol_conf.vmlinux_name as a source for mmap event name, but in fact it's a vmlinux path.
Moving the symbol_conf.vmlinux_name check for both host and guest to the proper place and out of the machine__set_mmap_name function.
Reported-by Leo Yan <[email protected]>
Tested-by Leo Yan <[email protected]>
Fixes commit ("8c7f1bb37b29 perf machine: Move kernel mmap name into struct machine")
Signed-off-by Jiri Olsa <[email protected]>
--- tools/perf/util/machine.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)
tools/perf/util/machine.c +13 -15
@@ -50,21 +50,13 @@ static void machine__threads_init(struct machine *machine)static int machine__set_mmap_name (struct machine *machine) { -if (machine__is_host (machine)) { -if (symbol_conf.vmlinux_name) - machine->mmap_name =strdup (symbol_conf.vmlinux_name); -else - machine->mmap_name =strdup ("[kernel.kallsyms]" ); - }else if (machine__is_default_guest (machine)) { -if (symbol_conf.default_guest_vmlinux_name) - machine->mmap_name =strdup (symbol_conf.default_guest_vmlinux_name); -else - machine->mmap_name =strdup ("[guest.kernel.kallsyms]" ); - }else { -if (asprintf (&machine->mmap_name,"[guest.kernel.kallsyms.%d]" , - machine->pid) <0 ) - machine->mmap_name =NULL ; - } +if (machine__is_host (machine)) + machine->mmap_name =strdup ("[kernel.kallsyms]" ); +else if (machine__is_default_guest (machine)) + machine->mmap_name =strdup ("[guest.kernel.kallsyms]" ); +else if (asprintf (&machine->mmap_name,"[guest.kernel.kallsyms.%d]" , + machine->pid) <0 ) + machine->mmap_name =NULL ;return machine->mmap_name ?0 : -ENOMEM ; }
@@ -794,9 +786,15 @@ static struct dso *machine__get_kernel(struct machine *machine)struct dso *kernel;if (machine__is_host (machine)) { +if (symbol_conf.vmlinux_name) + vmlinux_name = symbol_conf.vmlinux_name; + kernel =machine__findnew_kernel (machine, vmlinux_name,"[kernel]" ,DSO_TYPE_KERNEL ); }else { +if (symbol_conf.default_guest_vmlinux_name) + vmlinux_name = symbol_conf.default_guest_vmlinux_name; + kernel =machine__findnew_kernel (machine, vmlinux_name,"[guest.kernel]" ,DSO_TYPE_GUEST_KERNEL );
Signature · 1 line
2.13.6
tip-bot for Jiri Olsa
merge botperf machine: Fix mmap name setup
Commit-ID: c192524e6fe8a4bd18f2549f9556b81ed9e05a86 Gitweb: https://git.kernel.org/tip/c192524e6fe8a4bd18f2549f9556b81ed9e05a86 Author: Jiri Olsa <[email protected]> AuthorDate: Mon, 12 Mar 2018 16:24:06 +0100 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 16 Mar 2018 13:56:25 -0300
perf machine: Fix mmap name setup
Leo reported broken -k option behavior. The reason is that we used symbol_conf.vmlinux_name as a source for mmap event name, but in fact it's a vmlinux path.
Moving the symbol_conf.vmlinux_name check for both host and guest to the proper place and out of the machine__set_mmap_name function.
Reported-by Leo Yan <[email protected]>
Signed-off-by Jiri Olsa <[email protected]>
Tested-by Leo Yan <[email protected]>
Cc Alexander Shishkin <[email protected]>
Cc David Ahern <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Peter Zijlstra <[email protected]>
Fixes commit ("8c7f1bb37b29 perf machine: Move kernel mmap name into struct machine")
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/perf/util/machine.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)
tools/perf/util/machine.c +13 -15
@@ -50,21 +50,13 @@ static void machine__threads_init(struct machine *machine)static int machine__set_mmap_name (struct machine *machine) { -if (machine__is_host (machine)) { -if (symbol_conf.vmlinux_name) - machine->mmap_name =strdup (symbol_conf.vmlinux_name); -else - machine->mmap_name =strdup ("[kernel.kallsyms]" ); - }else if (machine__is_default_guest (machine)) { -if (symbol_conf.default_guest_vmlinux_name) - machine->mmap_name =strdup (symbol_conf.default_guest_vmlinux_name); -else - machine->mmap_name =strdup ("[guest.kernel.kallsyms]" ); - }else { -if (asprintf (&machine->mmap_name,"[guest.kernel.kallsyms.%d]" , - machine->pid) <0 ) - machine->mmap_name =NULL ; - } +if (machine__is_host (machine)) + machine->mmap_name =strdup ("[kernel.kallsyms]" ); +else if (machine__is_default_guest (machine)) + machine->mmap_name =strdup ("[guest.kernel.kallsyms]" ); +else if (asprintf (&machine->mmap_name,"[guest.kernel.kallsyms.%d]" , + machine->pid) <0 ) + machine->mmap_name =NULL ;return machine->mmap_name ?0 : -ENOMEM ; }
@@ -794,9 +786,15 @@ static struct dso *machine__get_kernel(struct machine *machine)struct dso *kernel;if (machine__is_host (machine)) { +if (symbol_conf.vmlinux_name) + vmlinux_name = symbol_conf.vmlinux_name; + kernel =machine__findnew_kernel (machine, vmlinux_name,"[kernel]" ,DSO_TYPE_KERNEL ); }else { +if (symbol_conf.default_guest_vmlinux_name) + vmlinux_name = symbol_conf.default_guest_vmlinux_name; + kernel =machine__findnew_kernel (machine, vmlinux_name,"[guest.kernel]" ,DSO_TYPE_GUEST_KERNEL );