On 05.07.2012 10:51, Xiao Guangrong wrote:
On 06/28/2012 05:11 PM, Peter Lieven wrote:

that here is bascially whats going on:

   qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio read len 3 
gpa 0xa0000 val 0x10ff
     qemu-kvm-1.0-2506  [010] 60996.908000: vcpu_match_mmio:      gva 0xa0000 
gpa 0xa0000 Read GPA
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio 
unsatisfied-read len 1 gpa 0xa0000 val 0x0
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_userspace_exit:   reason 
KVM_EXIT_MMIO (6)
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio read len 
3 gpa 0xa0000 val 0x10ff
     qemu-kvm-1.0-2506  [010] 60996.908000: vcpu_match_mmio:      gva 0xa0000 
gpa 0xa0000 Read GPA
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio 
unsatisfied-read len 1 gpa 0xa0000 val 0x0
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_userspace_exit:   reason 
KVM_EXIT_MMIO (6)
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio read len 
3 gpa 0xa0000 val 0x10ff
     qemu-kvm-1.0-2506  [010] 60996.908000: vcpu_match_mmio:      gva 0xa0000 
gpa 0xa0000 Read GPA
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio 
unsatisfied-read len 1 gpa 0xa0000 val 0x0
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_userspace_exit:   reason 
KVM_EXIT_MMIO (6)
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio read len 
3 gpa 0xa0000 val 0x10ff
     qemu-kvm-1.0-2506  [010] 60996.908000: vcpu_match_mmio:      gva 0xa0000 
gpa 0xa0000 Read GPA
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_mmio:             mmio 
unsatisfied-read len 1 gpa 0xa0000 val 0x0
     qemu-kvm-1.0-2506  [010] 60996.908000: kvm_userspace_exit:   reason 
KVM_EXIT_MMIO (6)

There are two mmio emulation after user-space-exit, it is caused by mmio
read access which spans two pages. But it should be fixed by:

commit f78146b0f9230765c6315b2e14f56112513389ad
Author: Avi Kivity<a...@redhat.com>
Date:   Wed Apr 18 19:22:47 2012 +0300

     KVM: Fix page-crossing MMIO

     MMIO that are split across a page boundary are currently broken - the
     code does not expect to be aborted by the exit to userspace for the
     first MMIO fragment.

     This patch fixes the problem by generalizing the current code for handling
     16-byte MMIOs to handle a number of "fragments", and changes the MMIO
     code to create those fragments.

     Signed-off-by: Avi Kivity<a...@redhat.com>
     Signed-off-by: Marcelo Tosatti<mtosa...@redhat.com>

Could you please pull the code from:
https://git.kernel.org/pub/scm/virt/kvm/kvm.git
and trace it again?
Thank you very much, this fixes the issue I have seen.

Thanks,
Peter

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to