Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

perf.data file has no samples

Tags:

profiling

perf

I am using perf 3.0.4 on ubuntu 11.10. Its record command works well and displays on terminal 256 samples collected. But when I make use of perf report , it gives me the following error:

perf.data file has no samples

I searched a lot for the solution but no success yet.

like image 984
Xara Avatar asked Jan 16 '14 07:01

Xara


3 Answers

This thread has some useful information: http://www.spinics.net/lists/linux-perf-users/msg01436.html

It seems that if you are running in a VM that does not expose the PMU to the guest, the default collection (-e cycles) won't work. Try running with -e cpu-clock. According to that thread, the OP had the same problem also in a real host running Ubuntu 10.04, so it might solve it for you too...

like image 86
Martina Ferrari Avatar answered Nov 02 '22 20:11

Martina Ferrari


Whenever I run into this on a machine where perf record has worked in the past, it is because I have left something else running that uses the performance counters, e.g., I have perf top running in another terminal tab.

In this case, it seems that perf record simply doesn't record any PMU related samples.

like image 32
BeeOnRope Avatar answered Nov 02 '22 21:11

BeeOnRope


The number of samples reported by the perf record command is an approximation and not the correct number of events (see perf wiki here).

To get the accurate number of events, dump the raw file and use wc -l to count then number of results:

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

This command should report 0 in your case where perf report says it can't find events.

Let us know more information about how you use perf record, which event are you sampling, which hardware, which program.

EDIT: you can try first to increase the sampling period or frequency with the -c or -F options

like image 45
Manuel Selva Avatar answered Nov 02 '22 19:11

Manuel Selva