我试图提高qemu运行的速度,因此例如真实CPU的一个滴答将对应于qemu的虚拟时间的两个滴答。这有可能吗?如果有的话,是否有人对如何做到这一点有任何指示?
答案 0 :(得分:1)
你不能这样做。 QEMU不是为此而制造的。
QEMU不会模拟执行时间。它对CPU缓存等一无所知,因此即使需要它也不准确。它只是尽可能快地执行访客代码。没有加速或减速。
希望这会有所帮助。至少不要这样寻求解决方案。
答案 1 :(得分:1)
也许您应该看看libvirt https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/Virtualization_Deployment_and_Administration_Guide/sect-Virtualization-Tips_and_tricks-Libvirt_Managed_Timers.html的tickpolicy
选项。
能够“赶上”主办时间。效果是客人似乎加速了。
该选项从libvirt转换为-rtc ,driftfix=slew
到qemu
请注意,它不会更改代码执行速度。
答案 2 :(得分:1)
有qemu选项可以改变客人看到的时间提前量。
我使用的args(与qemu v4.2.0一起使用)是:
qemu-system-x86_64 -rtc base=localtime,clock=vm -icount shift=7,align=off,sleep=off ...
请注意,icount与硬件加速不兼容。另请注意,偏移值过高可能会导致客户机OS出现异常。例如,当我尝试将值设置为10时,Linux内核不断抱怨任务停滞> 120s。
可能感兴趣的内容:对https://github.com/zephyrproject-rtos/zephyr/issues/14173的评论以及相关的问题/ PR。