我正在学习performance-engineering-of-software-systems-fall-2018和做检查项目1。使用ubuntu在免费的Azure为学生,但它不支持硬件事件,如'分支'。
$ uname -r
6.2.0-1018-azure
$ perf --version
perf version 6.2.16
$ lscpu
...
model :Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Hypervisor vendor : Microsoft
Virtualization type : full
...
$ perf list
List of pre-defined events (to be used in -e or -M):
alignment-faults [Software event]
bpf-output [Software event]
cgroup-switches [Software event]
context-switches OR cs [Software event]
cpu-clock [Software event]
cpu-migrations OR migrations [Software event]
dummy [Software event]
emulation-faults [Software event]
major-faults [Software event]
minor-faults [Software event]
page-faults OR faults [Software event]
task-clock [Software event]
duration_time [Tool event]
user_time [Tool event]
system_time [Tool event]
msr/pperf/ [Kernel PMU event]
msr/smi/ [Kernel PMU event]
msr/tsc/ [Kernel PMU event]
rNNN [Raw hardware event descriptor]
cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descriptor]
[(see 'man perf-list' on how to encode it)]
mem:<addr>[/len][:access] [Hardware breakpoint]
sdt_libc:cond_broadcast [SDT event]
sdt_libc:cond_destroy [SDT event]
sdt_libc:cond_init [SDT event]
sdt_libc:cond_signal [SDT event]
sdt_libc:cond_wait [SDT event]
sdt_libc:lll_lock_wait [SDT event]
sdt_libc:lll_lock_wait_private [SDT event]
sdt_libc:longjmp [SDT event]
sdt_libc:longjmp_target [SDT event]
sdt_libc:memory_arena_new [SDT event]
字符串
它似乎不支持硬件事件,如分支未命中,缓存未命中。
也许我应该在自己的桌面上构建VM,但我没有足够的磁盘空间:(
1条答案
按热度按时间4szc88ey1#
正如评论中所述,为了运行您的评估,您需要一个合适的硬件。特别是,一个允许您的论文中描述的功能和事件的硬件。
您正在使用的Azure VM等虚拟硬件隔离了访客操作系统(您的操作系统),不允许它完全控制连接的硬件。
在这种情况下,PMU事件不会暴露,因为它们会允许VM的用户中断主机。
此外,请记住,虚拟化软件采用了大量的优化和快捷方式,以实现与真实的硬件同等的性能,因此您可以观察到与物理专用硬件不同的行为。
你应该尝试一台真实的个人电脑,无论是通过双启动还是使用现场usb棒。