我在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()
函数将返回true,并且cpu不会关闭。
是否可以禁用TCG?
我没有找到关于TCG的任何旋钮; --disable-tcg
以及其他试验都不起作用。
我试图用--disable-tcg-interpreter
重新配置我的编译,但仍然没有任何变化。
那么,我该如何禁用TCG?或者,或者 - 是否有更好的方法来关闭虚拟CPU?
谢谢!
答案 0 :(得分:1)
嗯,据我所知,在没有KVM的情况下运行QEMU迫使QEMU使用Tiny Code Generator(TCG)而不是KVM。因此,在没有KVM且没有TCG的情况下运行QEMU根本不可能!