我正在尝试使用oerf工具测量特定功能的确切执行时间/周期。我添加了使用perf探针输入和返回每个函数的事件。我可以像这样看到带脚本的函数:
perf script --header -F comm,pid,tid,cpu,time,event
这就是我得到的:
kpktgend_1 33688/33688 [001] 151433.505544: probe:pktgen_alloc_skb:
kpktgend_1 33688/33688 [001] 151433.505545: probe:pktgen_alloc_skb_1:
kpktgend_1 33688/33688 [001] 151433.505546: probe:mlx5e_xmit:
kpktgend_1 33688/33688 [001] 151433.505546: probe:mlx5e_xmit_1:
kpktgend_1 33688/33688 [001] 151433.505547: probe:pktgen_alloc_skb:
kpktgend_1 33688/33688 [001] 151433.505547: probe:pktgen_alloc_skb_1:
kpktgend_1 33688/33688 [001] 151433.505548: probe:mlx5e_xmit:
kpktgend_1 33688/33688 [001] 151433.505549: probe:mlx5e_xmit_1:
每个“事件”是函数的入口点,“event”_1是函数的返回点。 这非常接近我想要的,因为你可以看到我得到了电话的时间。
三个问题:
答案 0 :(得分:1)
使用--ns标志运行perf脚本可以解决问题。
perf script -F time --ns
76970.575503465:
76970.575506464:
76970.575507479:
不
$perf script -F time
76970.575503:
76970.575506:
76970.575507:
来自文档:
perf script -h
--ns Use 9 decimal places when displaying time