我是虚拟化的新手,并试图理解设置仿真背后的基本思想。
我正在关注e500核心指令集仿真。
http://www.linux-kvm.org/page/E500_virtual_CPU_specification
这特别" kvmppc_core_emulate_mtspr()"在内核代码中模拟powerpc核心的mtspr指令。
想知道我们在这个函数中究竟做了什么来模拟mtspr以及为什么只按e500_emulate.c模拟两个指令(mtspr和mfspr)
答案 0 :(得分:12)
Hardware-assisted virtualization是直接执行目标程序的许多指令的艺术,无需仿真。支持硬件辅助虚拟化的处理器的设计使得只有少数特权指令无法直接执行。由于处理器直接执行目标代码,当出现这些指令之一时,它必须具有将控制权转移回管理程序的机制,管理程序可能希望在软件中模拟特权指令应该具有的效果。 有,以便让目标程序直接执行它。这是 如何在虚拟机管理程序中运行未经过修改的未经修改的操作系统。
仅模拟两条指令,因为只需要这两条指令。其他的由处理器直接全速执行,无需仿真。