如何 运行 没有 TCG 和 KVM 的 QEMU

How to run QEMU without TCG and without KVM

我正试图在我的 QEMU 虚拟机处于 运行 时关闭虚拟核心。

为此,我需要使用位于 cpus.c:

的函数 qemu_cpu_kick()
void qemu_cpu_kick(CPUState *cpu)
{
    qemu_cond_broadcast(cpu->halt_cond);
    if (!tcg_enabled() && !cpu->thread_kicked) {
            qemu_cpu_kick_thread(cpu);
            cpu->thread_kicked = true;
    }
}

它运行良好 - 仅当我启用 KVM 时。 但是,我需要禁用 KVM,一旦我禁用 KVM - tcg_enabled() 函数 returns 为真,并且 cpu 不会关闭下来。

是否可以禁用 TCG?

我没有找到关于TCG的任何按钮; --disable-tcg,以及其他试用,都不行。 我尝试用 --disable-tcg-interpreter 重新配置我的编译,但仍然没有任何变化。

那么,我该如何禁用 TCG 呢?或者,或者 - 是否有更好的方法来关闭虚拟 cpu?

谢谢!

好吧,据我了解,运行 没有 KVM 的 QEMU 强制 QEMU 使用微型代码生成器 (TCG) 而不是 KVM。所以,运行 没有 KVM 和没有 TCG 的 QEMU 根本不可能!