• Yunlong Song's avatar
    perf mem: Support using -f to override perf.data file ownership · 62a1a63a
    Yunlong Song authored
    Enable perf mem to use perf.data when it is not owned by current user or
    root.
    
    Example:
    
     # perf mem -t load record ls
     # chown Yunlong.Song:Yunlong.Song perf.data
     # ls -al perf.data
     -rw------- 1 Yunlong.Song Yunlong.Song 16392 Apr  2 14:34 perf.data
     # id
     uid=0(root) gid=0(root) groups=0(root),64(pkcs11)
    
    Before this patch:
    
     # perf mem -D report
     File perf.data not owned by current user or root (use -f to override)
     # perf mem -D -f report
       Error: unknown switch `f'
    
      usage: perf mem [<options>] {record|report}
    
         -t, --type <type>     memory operations(load,store) Default load,store
         -D, --dump-raw-samples
                               dump raw samples in ASCII
         -U, --hide-unresolved
                               Only display entries resolved to a symbol
         -i, --input <file>    input file name
         -C, --cpu <cpu>       list of cpus to profile
         -x, --field-separator <separator>
                               separator for columns, no spaces will be added
                               between columns '.' is reserved.
    
    As shown above, the -f option does not work at all.
    
    After this patch:
    
     # perf mem -D report
     File perf.data not owned by current user or root (use -f to override)
     # perf mem -D -f report
     # PID, TID, IP, ADDR, LOCAL WEIGHT, DSRC, SYMBOL
     39095 39095 0xffffffff81127e40 0x016ffff887f45148338 8 0x68100142
     /proc/kcore:perf_event_aux
     39095 39095 0xffffffff8100a3fe 0xffff89007f8cb7d0 6 0x68100142
     /proc/kcore:native_sched_clock
     39095 39095 0xffffffff81309139 0xffff88bf44c9ded8 6 0x68100142
     /proc/kcore:acpi_map_lookup
     39095 39095 0xffffffff810f8c4c 0xffff89007f8ccd88 6 0x68100142
     /proc/kcore:rcu_nmi_exit
     39095 39095 0xffffffff81136346 0xffff88fea995dd50 6 0x68100142
     /proc/kcore:unlock_page
     39095 39095 0xffffffff812a64a2 0xffff88fea995dcc8 6 0x68100142
     /proc/kcore:half_md4_transform
     39095 39095 0x7f0cf877c7e9 0x25dfb94 6 0x68100142
     /lib64/libc-2.19.so:__readdir64
     39095 39095 0x7f0cf87575a3 0x7f0cf9163731 6 0x68100142
     /lib64/libc-2.19.so:__strcoll_l
     39095 39095 0xffffffff8116910e 0xffffea01c1bfbd50 23 0x68100242
     /proc/kcore:page_remove_rmap
    
    As shown above, the -f option really works now.
    Signed-off-by: default avatarYunlong Song <yunlong.song@huawei.com>
    Tested-by: default avatarArnaldo 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-7-git-send-email-yunlong.song@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    62a1a63a
builtin-mem.c 7.15 KB