Thanks Paolo, it's very clear. -Jidong On Thu, May 22, 2014 at 7:42 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > Il 22/05/2014 05:55, Jidong Xiao ha scritto: > >> Hi, >> >> I noticed that there is a file call emulate.c, under the directory of >> arch/x86/kvm/, in its header part, it says: >> >> "Generic x86 (32-bit and 64-bit) instruction decoder and emulator." >> >> I am confused about this, since qemu will be the emulator, why does >> kvm itself also includes such an emulator? In particular, I added some >> printk debug statement in x86_emulate_insn() and >> emulate_instruction(), but I never see them being invoked. Can someone >> kindly explain this, thank you! > > > QEMU is providing the device model and interfaces with KVM. QEMU's CPU > emulation functionality is not used when running with KVM. > > The KVM emulator is used: 1) to execute instructions that read or write to > device memory; 2) to run "big real mode" programs on microprocessors that do > not support it natively, for example Intel processors older than Westmere. > > Paolo > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html