Wenhao Xu<address@hidden> wrote:
Hi, Juan,
I am fresh to both QEMU and KVM. But so far, I notice that QEMU
uses "KVM_SET_USER_MEMORY_REGION" to set memory region that KVM can
use and uses cpu_register_physical_memory_offset to register the same
memory to QEMU emulator, which means QEMU and KVM use the same host
virtual memory. And therefore the memory KVM modified could be
directly reflected to QEMU. I don't quite understand the different
memory layout problem between the two. So I don't know exactly what
you mean to "fix" it?
1st. qemu-kvm.git and qemu.git memory layouts are different, indeed with
qemu.git kvm mode. (yes it is complex and weird).
kvm vs qemu initialization is different. Expecting to stop kvm, and run
tcg from there is not going to work. I guess it would need a lot of
changes, but I haven't looked at it myself.
For why switching is useful? Actually, I am a master student now
and doing a course project. What am I arguing is that QEMU could be
potentially useful to do many instrumentation analysis, but it is a
bit slow. So by combing with KVM, when the os runs to some place where
we are interested in, switch it to QEMU emulator mode and do the
analysis and then switch back.
idea is good, but I don't think that it is _so_ easy at this point. tcg
and kvm basically live in a different world. Not sure of what needs to
be done to make them back on sync.