我看了 QEMU 原理 TCG 将代码块转换为 host 的代码后再执行,而且有 TBCache 的存在,应该和 KVM 的性能差不多吧?实际用下来 KVM 快蛮多,这种情况是因为 TB 另外增加的 Prologue、Epilogue 造成的么?
1
tamlok 2020-03-03 18:13:35 +08:00 via Android
tcg 的话一整套都是软件模拟,kvm 是直接利用硬件虚拟化直接在硬件上跑,性能差距巨大吧
|
2
chashao OP @tamlok 大佬,好像 TCG 翻译过程中,代码块会转换成 Host 的二进制指令,然后直接运行这个转换后二进制,我觉得速度应该挺快的才对。。
|
5
nevin47 2020-03-03 19:25:17 +08:00 via Android
你自己都提到了,TCG 是靠二进制转译工作的。而 KVM 是靠 kvm.ko 透过 vt-x/amd-v/ARM virtualization extension 这些 CPU 特性直接执行的,两者之间的路径差异就已经相当大了
|