【问题标题】:Increasing the speed of qemu clock提高qemu时钟的速度
【发布时间】:2014-09-16 04:45:00
【问题描述】:

我正在尝试提高 qemu 的运行速度,例如,真实 CPU 的一个滴答声将对应 qemu 虚拟时间的两个滴答声。这是可能的吗?如果可以,是否有人对如何进行此操作有任何指示?

【问题讨论】:

    标签: emulation qemu system-clock


    【解决方案1】:

    有 qemu 选项可以改变客人看到的时间提前。

    我使用的参数(使用 qemu v4.2.0)是:

    qemu-system-x86_64 -rtc base=localtime,clock=vm -icount shift=7,align=off,sleep=off ...
    

    请注意,icount 与硬件加速不兼容。另请注意,移位值太高可能会导致客户操作系统行为不端。例如,当我尝试将值设置为 10 时,linux 内核一直在抱怨任务停滞 >120 秒。

    可能感兴趣:https://github.com/zephyrproject-rtos/zephyr/issues/14173 上的 cmets 和链接的问题/PR。

    【讨论】:

      【解决方案2】:

      你不能这样做。 QEMU 不是为这样的事情而生的。

      QEMU 不模拟执行时间。它对 CPU 缓存等一无所知,因此即使它是可取的也不能准确。它只是尽可能快地执行客户代码。没有加速或减速。

      至少不要这样寻求解决方案。

      【讨论】:

      • 至少在全系统仿真模式下(使用 CPU 仿真)增加 QEMU 时钟是可能的。请参阅“-icount”选项。我正在寻找与 OP 相同的东西,但用于支持 KVM 的仿真,但仍然没有成功。
      • 你确定它会尽可能快吗?我在 Qemu 中有一个 VM,当它启动时它说 CPU 频率是 10 MHz。
      【解决方案3】:

      也许你应该看看 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 转换为 qemu 为 -rtc ,driftfix=slew

      请注意,它不会改变代码的执行速度。

      【讨论】:

        猜你喜欢
        • 2022-01-11
        • 2019-12-22
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多