我正在尝试在具有 3.8 Linux 内核的系统中使用 perf。当我使用以下命令时,发生错误:
$ perf record -c 100000 -e '{cycles,instructions}:S' ./nonloop 1000
failed to mmap with 25 (Inappropriate ioctl for device)
nonloop: Terminated
谁能告诉我如何解决这个问题?
答案1
看起来 :S 是问题所在。
性能记录-c 100000-ecycles,指令./somebin
运行良好。什么是:S?
我在运行时看到类似的错误:
sudo perf record -esyscalls:sys_enter -p $(pidof some_bin) 无法使用 22 进行映射(参数无效)
其中 perf list 建议 syscalls:sys_enter 应该可用。