错误:perf.data文件没有样本

我目前正在学习使用perf。 我为硬件事件输出,但不是用于cpu-cycles或cpu-clock等软件事件。

我用详细选项调用perf:

$ > perf record -v ./pi-serial-ps
mmap size 528384B
Reference Pi: 3.1415926536
Simulated Pi: 3.1415209778
[ perf record: Woken up 15 times to write data ]
Looking at the vmlinux_path (7 entries long)
Using /proc/kallsyms for symbols
[ perf record: Captured and wrote 3.694 MB perf.data (96497 samples) ]

使用-e cpu-clock调用perf记录会得到相同的输出。 我看了一下真实的样本量:

$ > perf report -D -i perf.data | grep RECORD_SAMPLE | wc -l
96497

perf报告TUI提供一个没有错误的空表。 使用详细选项,它会输出:

$ > perf report -v perf.data
build id event received for [kernel.kallsyms]: d9ffffc97cd9edb0ddd58462595dd69a8c8b694
build id event received for /lib/modules 2.6.32-642.11.1.el6.Bull.106.x86_64/kernel/net/sunrpc/sunrpc.ko: 31402cf2d9ace7f86d54601334db6931390f8f6c
build id event received for /home/h1/s7330426/_Exercises/X03/x03/pi-serial-ps: bd3a924ac41ff481a4bc5bf034853f03b76193f4
build id event received for /lib64/ld-2.12.so: f3eebd18e66eb139ea4d76cdfa86d643abcf0070
build id event received for /lib64/libc-2.12.so: 24d3ab3db0f38c7515feadf82191651da4117a18

Perf注释有这个错误:

the perf.data file has no samples

它不会输出任何东西到控制台,甚至没有详细的选项。

我检查了这个问题perf.data文件没有样本,也http://www.spinics.net/lists/linux-perf-users/msg01437.html这两个都没有解决我的问题。

我在没有root权限的本地主机上使用Linux版本2.6.32-642.11.1.el6.Bull.106.x86_64。

任何帮助?

我发现了一个测量cpu-clock的解决方法,但我不知道它是否可靠:perf:软件事件之间的奇怪关系


perf stat开始获取通用原始性能计数器值:

perf stat ./pi-serial-ps

如果某些事件event原始计数超过了数百或数千且目标程序运行时间超过几毫秒,则可以使用perf record -e event (或perf record -e event:u来不分析内核代码)。 通常将自动调谐采样率记录到几kHz左右(例如,如果您的程序有1亿个周期,则每100万周期中可以选择性能记录作为采样生成器),而原始计数器值过低的事件可能不会生成任何采样。 您也可以为每个采样带有-c选项的perf记录设置事件计数,在本例中我们要求perf记录在程序的用户空间代码每消耗10000个周期后生成采样; 对于运行8469个周期的程序将生成零个样本:

perf record -e cycles:u -c 10000 ./pi-serial-ps
链接地址: http://www.djcxy.com/p/80045.html

上一篇: error: perf.data file has no samples

下一篇: Launching perf from bash script with CAP