lkml.org 
[lkml]   [2018]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 30/31] perf machine: Fix mmap name setup
    Date
    From: Jiri Olsa <jolsa@kernel.org>

    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 <leo.yan@linaro.org>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Leo Yan <leo.yan@linaro.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: commit ("8c7f1bb37b29 perf machine: Move kernel mmap name into struct machine")
    Link: http://lkml.kernel.org/r/20180312152406.10141-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/machine.c | 28 +++++++++++++---------------
    1 file changed, 13 insertions(+), 15 deletions(-)

    diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
    index 43fbbee409ec..2eca8478e24f 100644
    --- a/tools/perf/util/machine.c
    +++ b/tools/perf/util/machine.c
    @@ -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);
    --
    2.14.3
    \
     
     \ /
      Last update: 2018-03-13 13:08    [W:4.225 / U:0.488 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site