0

我一直在按照这些说明为我的代码生成 CPU 外火焰图。但是,当我到达这一步时:

perf script -f comm,pid,tid,cpu,time,period,event,ip,sym,dso,trace

我收到以下错误:

Invalid field requested.

 Usage: perf script [<options>]
    or: perf script [<options>] record <script> [<record-options>] <command>
    or: perf script [<options>] report <script> [script-args]
    or: perf script [<options>] <script> [<record-options>] <command>
    or: perf script [<options>] <top-script> [script-args]

    -F, --fields <str>    comma separated output fields prepend with 'type:'. Valid types: hw,sw,trace,raw. Fields: comm,tid,pid,time,cpu,event,trace,ip,sym,dso,addr,symoff,period,iregs,brstack,brstacksym,flags,bpf-output,callindent,insn,insnlen

我知道每个输出字段都需要有一个类型,但我不确定我应该提供哪种类型。有人能指出我正确的方向吗?

4

1 回答 1

0

更新:在更新的内核上,使用“perf script -F ...”而不是“perf script -f ...”。您的内核还需要 CONFIG_SCHEDSTATS 才能使所有跟踪点都存在,这可能会丢失(例如,RHEL7)。

注意,请在绘制 off-cpu 火焰图之前将 /proc/sys/kernel/sched_schedstats 设置为 1。

于 2017-09-08T08:57:08.593 回答