В файле perf.data нет образцов

Я использую perf 3.0.4 на Ubuntu 11.10. Его команда записи работает хорошо и отображает на терминале 256 собранных образцов. Но когда я использую perf report, я получаю следующую ошибку:

perf.data file has no samples

Я много искал решение, но пока безуспешно.


person Xara    schedule 16.01.2014    source источник
comment
Пожалуйста, дайте нам команду, которую вы используете для записи событий.   -  person Manuel Selva    schedule 17.01.2014
comment
ты решил свою проблему?   -  person Manuel Selva    schedule 11.02.2014
comment
Просто чтобы указать еще одну причину, по которой может произойти ошибка: это может быть поскольку запрошенные события не включено в ядре. Например, если вы записываете одно из sched: событий, вы должны установить sudo sysctl kernel.sched_schedstats=1.   -  person Hi-Angel    schedule 16.04.2020


Ответы (3)


В этой ветке есть полезная информация: http://www.spinics.net/lists/linux-perf-users/msg01436.html

Кажется, что если вы работаете на виртуальной машине, которая не предоставляет PMU гостю, коллекция по умолчанию (-e cycles) не будет работать. Попробуйте запустить с -e cpu-clock. Согласно этой ветке, у OP была такая же проблема и на реальном хосте с Ubuntu 10.04, поэтому он может решить ее и для вас...

person Martina Ferrari    schedule 04.03.2016
comment
Благодарю вас! Это помогло мне решить проблему с пламенными графами (которые полагаются на perf). Надеюсь, мое упоминание пламенных графов в этом комментарии поможет другим найти эту тему. - person John Hart; 14.03.2017
comment
Мне это не помогло, но спасибо, что указали, что проблема может заключаться в том, что она работает на виртуальной машине! - person lucidbrot; 19.12.2020

Количество выборок, сообщаемое командой perf record, является приблизительным, а не правильным количеством событий (см. перф вики здесь).

Чтобы получить точное количество событий, сделайте дамп необработанного файла и используйте wc -l для подсчета количества результатов:

отчет о производительности -D -i perf.data | grep RECORD_SAMPLE | туалет -л

Эта команда должна сообщить 0 в вашем случае, когда perf report говорит, что не может найти события.

Сообщите нам больше информации о том, как вы используете запись производительности, какое событие вы сэмплируете, какое оборудование, какую программу.

РЕДАКТИРОВАТЬ: вы можете сначала попробовать увеличить период или частоту дискретизации с помощью параметров -c или -F

person Manuel Selva    schedule 17.01.2014

Всякий раз, когда я сталкиваюсь с этим на машине, где perf record работал в прошлом, это происходит потому, что я оставил запущенным что-то еще, использующее счетчики производительности, например, у меня есть perf top, работающий на другой вкладке терминала.

В этом случае кажется, что perf record просто не записывает никаких семплов, связанных с PMU.

person BeeOnRope    schedule 29.07.2018