QEMU中的 pvpanic设备
pvpanic设备是在Qemu-1.5的时候引入的一个ISA设备[1], 旨在让hypervisor可以感知guest kernel panic,并作出相应的处理。 在目前的实现中,pvpanic使用了一个固定的I/O端口(默认为0x505), 向这个端口的bit 0写入1的时候,即意味着guest kernel panic发生了。
首先,先来玩一玩这个设备,看看它到底会干点啥。
青蛙目前用的Ubuntu Saucy 系统上面的 Qemu 版本是1.6.0。 由于pvpanic设备在设计过程中并没有过多的考虑windows guest的情况, 并且libvirt支持这个设备也遇到了困难,所以qemu的开发者们曾经就这个设备发生了一大串的讨论[2]。 所以在现在的Qemu 1.7.*, 1.6.*, 1.5.4+中,这个功能都是默认关闭的, 要使用这个pvpanic,还需要几条额外的选项:
qemu-system-x86_64 -name test-pvpanic -nodefaults -cpu host -m …