我正在尝试测量 VM 中一条指令的循环计数——我的代码如下所示:
start = rdtscp();
i++;
end = rtdscp();
//Increasing i took end-time cycles
据我所知,在 VM 中使用
rdtscp
并不能提供准确的周期计数。我这样启动我的虚拟机:
qemu-system-x86_64 -enable-kvm -cpu EPYC-v4 [...]
在 zen3 AMD CPU 上(未启用 SEV)。有什么方法可以配置 kvm 不捕获
rdtscp
指令并获得准确的时间戳测量?