lkml.org 
[lkml]   [2015]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf inject: Support using -f to override perf.data file ownership
    Commit-ID:  ccaa474c8a0983d26ecb3eac755672b546b997c3
    Gitweb: http://git.kernel.org/tip/ccaa474c8a0983d26ecb3eac755672b546b997c3
    Author: Yunlong Song <yunlong.song@huawei.com>
    AuthorDate: Thu, 2 Apr 2015 21:47:11 +0800
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Thu, 2 Apr 2015 13:18:45 -0300

    perf inject: Support using -f to override perf.data file ownership

    Enable perf inject to use perf.data when it is not owned by current user
    or root.

    Example:

    # perf record ls
    # chown Yunlong.Song:Yunlong.Song perf.data
    # ls -al perf.data
    -rw------- 1 Yunlong.Song Yunlong.Song 28260 Apr 2 10:37 perf.data
    # id
    uid=0(root) gid=0(root) groups=0(root),64(pkcs11)

    Before this patch:

    # perf inject -v -b -i perf.data -o perf.data.new
    File perf.data not owned by current user or root (use -f to override)
    # perf inject -v -b -i perf.data -o perf.data.new -f
    Error: unknown switch `f'

    usage: perf inject [<options>]

    -b, --build-ids Inject build-ids into the output stream
    -i, --input <file> input file name
    -o, --output <file> output file name
    -s, --sched-stat Merge sched-stat and sched-switch for getting
    events where and how long tasks slept
    -v, --verbose be more verbose (show build ids, etc)
    --kallsyms <file>
    kallsyms pathname

    As shown above, the -f option does not work at all.

    After this patch:

    # perf inject -v -b -i perf.data -o perf.data.new
    File perf.data not owned by current user or root (use -f to override)
    # perf inject -v -b -i perf.data -o perf.data.new -f
    build id event received for [kernel.kallsyms]:
    f6dcb66d8b98f1c0d9eb87bf043444b69f91d30c
    symsrc__init: cannot get elf header.
    Looking at the vmlinux_path (7 entries long)
    Using /proc/kcore for kernel object code
    Using /proc/kallsyms for symbols

    As shown above, the -f option really works now.

    Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1427982439-27388-3-git-send-email-yunlong.song@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    tools/perf/builtin-inject.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
    index ea46df25..40a33d7 100644
    --- a/tools/perf/builtin-inject.c
    +++ b/tools/perf/builtin-inject.c
    @@ -443,6 +443,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
    "be more verbose (show build ids, etc)"),
    OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file",
    "kallsyms pathname"),
    + OPT_BOOLEAN('f', "force", &file.force, "don't complain, do it"),
    OPT_END()
    };
    const char * const inject_usage[] = {

    \
     
     \ /
      Last update: 2015-04-03 07:41    [W:2.269 / U:0.056 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site