планирование perf, отличное от sudo, всегда завершается сбоем из-за «сломанных или отсутствующих данных трассировки»
На моем Ubuntu 22.04 (5.19.0-35-generic) кажется, чтоperf sched
не способен разобрать свой собственныйperf.data
выход. Согласно примерам из блога Брендана Грегга, запись работает нормально.
# perf sched record -- sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 2.844 MB perf.data (11439 samples) ]
Однако любая моя попытка прочитать данные профилирования терпит неудачу:
# perf script --header
incompatible file format (rerun with -v to learn more)
# perf sched script
incompatible file format (rerun with -v to learn more)
# perf sched latency
incompatible file format (rerun with -v to learn more)
# perf sched map
incompatible file format (rerun with -v to learn more)
Подробный вывод просто сообщаетbroken or missing trace data
:
# perf script -v --header
build id event received for [kernel.kallsyms]: 77ab8542b6540fae3367bbb18a7aeede3c3b6f7b [20]
build id event received for [vdso]: f33b8f26bed889157b75129711599f9ca5ec9d0e [20]
broken or missing trace data
incompatible file format (rerun with -v to learn more)
Немного погуглив, я нашел только старые отчеты об ошибках, но их обходные пути к моему случаю не применимы:
# perf script --header -i - < perf.data
incompatible file format (rerun with -v to learn more)
Более того, я обнаружил, что выполнение тех же команд сsudo
работает отлично:
# sudo perf sched record -- sleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 3.875 MB perf.data (19424 samples) ]
# sudo perf script --header
<output>
Есть идеи, в чем проблема с командами, отличными от sudo?