lkml.org 
[lkml]   [2017]   [Jan]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 03/13] perf machine: Add a kallsyms loading constructor
    Date
    From: Arnaldo Carvalho de Melo <acme@redhat.com>

    To reduce the boilerplate for searching for functions in the running
    kernel and modules.

    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-93iqzayafpaxaguoiwjqezgz@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/util/machine.c | 19 +++++++++++++++++++
    tools/perf/util/machine.h | 1 +
    2 files changed, 20 insertions(+)

    diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
    index 9b33bef54581..747a034d1ff3 100644
    --- a/tools/perf/util/machine.c
    +++ b/tools/perf/util/machine.c
    @@ -87,6 +87,25 @@ struct machine *machine__new_host(void)
    return NULL;
    }

    +struct machine *machine__new_kallsyms(void)
    +{
    + struct machine *machine = machine__new_host();
    + /*
    + * FIXME:
    + * 1) MAP__FUNCTION will go away when we stop loading separate maps for
    + * functions and data objects.
    + * 2) We should switch to machine__load_kallsyms(), i.e. not explicitely
    + * ask for not using the kcore parsing code, once this one is fixed
    + * to create a map per module.
    + */
    + if (machine && __machine__load_kallsyms(machine, "/proc/kallsyms", MAP__FUNCTION, true) <= 0) {
    + machine__delete(machine);
    + machine = NULL;
    + }
    +
    + return machine;
    +}
    +
    static void dsos__purge(struct dsos *dsos)
    {
    struct dso *pos, *n;
    diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
    index 354de6e56109..a28305029711 100644
    --- a/tools/perf/util/machine.h
    +++ b/tools/perf/util/machine.h
    @@ -129,6 +129,7 @@ char *machine__mmap_name(struct machine *machine, char *bf, size_t size);
    void machines__set_comm_exec(struct machines *machines, bool comm_exec);

    struct machine *machine__new_host(void);
    +struct machine *machine__new_kallsyms(void);
    int machine__init(struct machine *machine, const char *root_dir, pid_t pid);
    void machine__exit(struct machine *machine);
    void machine__delete_threads(struct machine *machine);
    --
    2.9.3
    \
     
     \ /
      Last update: 2017-01-11 21:26    [W:2.649 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site