• Yunlong Song's avatar
    perf timechart: Support using -f to override perf.data file ownership · 44f7e432
    Yunlong Song authored
    Enable perf timechart to use perf.data when it is not owned by current
    user or root.
    
    Example:
    
     # perf timechart record ls
     # chown Yunlong.Song:Yunlong.Song perf.data
     # ls -al perf.data
     -rw------- 1 Yunlong.Song Yunlong.Song 5471744 Apr  2 15:15 perf.data
     # id
     uid=0(root) gid=0(root) groups=0(root),64(pkcs11)
    
    Before this patch:
    
     # perf timechart
     File perf.data not owned by current user or root (use -f to override)
     # perf timechart -f
       Error: unknown switch `f'
    
      usage: perf timechart [<options>] {record}
    
         -i, --input <file>    input file name
         -o, --output <file>   output file name
         -w, --width <n>       page width
             --highlight <duration or task name>
                               highlight tasks. Pass duration in ns or process name.
         -P, --power-only      output power data only
         -T, --tasks-only      output processes data only
         -p, --process <process>
                               process selector. Pass a pid or process name.
             --symfs <directory>
                               Look for files with symbols relative to this directory
         -n, --proc-num <n>    min. number of tasks to print
         -t, --topology        sort CPUs according to topology
             --io-skip-eagain  skip EAGAIN errors
             --io-min-time <time>
                               all IO faster than min-time will visually appear longer
             --io-merge-dist <time>
                               merge events that are merge-dist us apart
    
    As shown above, the -f option does not work at all.
    
    After this patch:
    
     # perf timechart
     File perf.data not owned by current user or root (use -f to override)
     # perf timechart -f
     Written 0.0 seconds of trace to output.svg.
     # cat output.svg
     <?xml version="1.0" standalone="no"?>
     <!DOCTYPE svg SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
     <svg width="1000" height="10110" version="1.1" xmlns="http://www.w3.org/2000/svg">
     <defs>
       <style type="text/css">
         <![CDATA[
           rect          { stroke-width: 1; }
     ...
     ...
    
    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-9-git-send-email-yunlong.song@huawei.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    44f7e432
builtin-timechart.c 46.8 KB