为什么我的Linux命令'perf list'不支持像'branches'这样的硬件事件?

rvpgvaaj  于 2024-01-06  发布在  Linux
关注(0)|答案(1)|浏览(180)

我正在学习performance-engineering-of-software-systems-fall-2018和做检查项目1。使用ubuntu在免费的Azure为学生,但它不支持硬件事件,如'分支'。

  1. $ uname -r
  2. 6.2.0-1018-azure
  3. $ perf --version
  4. perf version 6.2.16
  5. $ lscpu
  6. ...
  7. model :Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
  8. Hypervisor vendor : Microsoft
  9. Virtualization type : full
  10. ...
  11. $ perf list
  12. List of pre-defined events (to be used in -e or -M):
  13. alignment-faults [Software event]
  14. bpf-output [Software event]
  15. cgroup-switches [Software event]
  16. context-switches OR cs [Software event]
  17. cpu-clock [Software event]
  18. cpu-migrations OR migrations [Software event]
  19. dummy [Software event]
  20. emulation-faults [Software event]
  21. major-faults [Software event]
  22. minor-faults [Software event]
  23. page-faults OR faults [Software event]
  24. task-clock [Software event]
  25. duration_time [Tool event]
  26. user_time [Tool event]
  27. system_time [Tool event]
  28. msr/pperf/ [Kernel PMU event]
  29. msr/smi/ [Kernel PMU event]
  30. msr/tsc/ [Kernel PMU event]
  31. rNNN [Raw hardware event descriptor]
  32. cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descriptor]
  33. [(see 'man perf-list' on how to encode it)]
  34. mem:<addr>[/len][:access] [Hardware breakpoint]
  35. sdt_libc:cond_broadcast [SDT event]
  36. sdt_libc:cond_destroy [SDT event]
  37. sdt_libc:cond_init [SDT event]
  38. sdt_libc:cond_signal [SDT event]
  39. sdt_libc:cond_wait [SDT event]
  40. sdt_libc:lll_lock_wait [SDT event]
  41. sdt_libc:lll_lock_wait_private [SDT event]
  42. sdt_libc:longjmp [SDT event]
  43. sdt_libc:longjmp_target [SDT event]
  44. sdt_libc:memory_arena_new [SDT event]

字符串
它似乎不支持硬件事件,如分支未命中,缓存未命中。
也许我应该在自己的桌面上构建VM,但我没有足够的磁盘空间:(

4szc88ey

4szc88ey1#

正如评论中所述,为了运行您的评估,您需要一个合适的硬件。特别是,一个允许您的论文中描述的功能和事件的硬件。
您正在使用的Azure VM等虚拟硬件隔离了访客操作系统(您的操作系统),不允许它完全控制连接的硬件。
在这种情况下,PMU事件不会暴露,因为它们会允许VM的用户中断主机。
此外,请记住,虚拟化软件采用了大量的优化和快捷方式,以实现与真实的硬件同等的性能,因此您可以观察到与物理专用硬件不同的行为。
你应该尝试一台真实的个人电脑,无论是通过双启动还是使用现场usb棒。

相关问题