如何 运行 没有 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 根本不可能!
我正试图在我的 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 根本不可能!