On Mon, 24 Nov 2014, Stefano Stabellini wrote:
> CC'ing Paolo.
> 
> 
> Wen,
> thanks for the logs.
> 
> I investigated a little bit and it seems to me that the bug occurs when
> QEMU tries to unmap only a portion of a memory region previously mapped.
> That doesn't work with xen-mapcache.
> 
> See these logs for example:
> 
> DEBUG address_space_map phys_addr=78ed8b44 vaddr=7fab50afbb68 len=0xa
> DEBUG address_space_unmap vaddr=7fab50afbb68 len=0x6

Sorry the logs don't quite match, it was supposed to be:

DEBUG address_space_map phys_addr=78ed8b44 vaddr=7fab50afbb64 len=0xa
DEBUG address_space_unmap vaddr=7fab50afbb68 len=0x6



> that leads to the error:
> 
> xen_ram_addr_from_mapcache, could not find 0x7fab50afbb68
> 
> 
> Paolo, do you know why virtio would call address_space_unmap with a
> different set of arguments compared to the previous address_space_map
> call?
> 
> 
> On Mon, 24 Nov 2014, Wen Congyang wrote:
> > On 11/24/2014 04:52 PM, Fabio Fantoni wrote:
> > > Il 24/11/2014 02:58, Wen Congyang ha scritto:
> > >> When I try to use virtio on xen(HVM guest), qemu crashed. Here is the 
> > >> backtrace:
> > >> (gdb) bt
> > >> #0  0x00007f49581f0b55 in raise () from /lib64/libc.so.6
> > >> #1  0x00007f49581f2131 in abort () from /lib64/libc.so.6
> > >> #2  0x00007f495af2af32 in xen_ram_addr_from_mapcache 
> > >> (ptr=0x7f4951858ac8) at 
> > >> /root/work/xen/tools/qemu-xen-dir/xen-mapcache.c:316
> > >> #3  0x00007f495ae30fb3 in qemu_ram_addr_from_host (ptr=0x7f4951858ac8, 
> > >> ram_addr=0x7fff564dc9b0) at /root/work/xen/tools/qemu-xen-dir/exec.c:1508
> > >> #4  0x00007f495ae33424 in address_space_unmap (as=0x7f495b7c3520, 
> > >> buffer=0x7f4951858ac8, len=6, is_write=0, access_len=6) at 
> > >> /root/work/xen/tools/qemu-xen-dir/exec.c:2315
> > >> #5  0x00007f495ae335b3 in cpu_physical_memory_unmap 
> > >> (buffer=0x7f4951858ac8, len=6, is_write=0, access_len=6) at 
> > >> /root/work/xen/tools/qemu-xen-dir/exec.c:2353
> > >> #6  0x00007f495ae9058d in virtqueue_fill (vq=0x7f495b931250, 
> > >> elem=0x7fff564dcb00, len=1, idx=0) at 
> > >> /root/work/xen/tools/qemu-xen-dir/hw/virtio/virtio.c:258
> > >> #7  0x00007f495ae90a0d in virtqueue_push (vq=0x7f495b931250, 
> > >> elem=0x7fff564dcb00, len=1) at 
> > >> /root/work/xen/tools/qemu-xen-dir/hw/virtio/virtio.c:286
> > >> #8  0x00007f495ae82cf3 in virtio_net_handle_ctrl (vdev=0x7f495b92a5d0, 
> > >> vq=0x7f495b931250) at 
> > >> /root/work/xen/tools/qemu-xen-dir/hw/net/virtio-net.c:806
> > >> #9  0x00007f495ae925e5 in virtio_queue_notify_vq (vq=0x7f495b931250) at 
> > >> /root/work/xen/tools/qemu-xen-dir/hw/virtio/virtio.c:729
> > >> #10 0x00007f495ae926c3 in virtio_queue_notify (vdev=0x7f495b92a5d0, n=2) 
> > >> at /root/work/xen/tools/qemu-xen-dir/hw/virtio/virtio.c:735
> > >> #11 0x00007f495ad743c2 in virtio_ioport_write (opaque=0x7f495b929cd0, 
> > >> addr=16, val=2) at hw/virtio/virtio-pci.c:301
> > >> #12 0x00007f495ad74923 in virtio_pci_config_write 
> > >> (opaque=0x7f495b929cd0, addr=16, val=2, size=2) at 
> > >> hw/virtio/virtio-pci.c:433
> > >> #13 0x00007f495ae9f071 in memory_region_write_accessor 
> > >> (mr=0x7f495b92a468, addr=16, value=0x7fff564e8d08, size=2, shift=0, 
> > >> mask=65535) at /root/work/xen/tools/qemu-xen-dir/memory.c:441
> > >> #14 0x00007f495ae9f1ad in access_with_adjusted_size (addr=16, 
> > >> value=0x7fff564e8d08, size=2, access_size_min=1, access_size_max=4, 
> > >> access=0x7f495ae9efe8 <memory_region_write_accessor>, mr=0x7f495b92a468)
> > >>      at /root/work/xen/tools/qemu-xen-dir/memory.c:478
> > >> #15 0x00007f495aea200e in memory_region_dispatch_write 
> > >> (mr=0x7f495b92a468, addr=16, data=2, size=2) at 
> > >> /root/work/xen/tools/qemu-xen-dir/memory.c:985
> > >> #16 0x00007f495aea5824 in io_mem_write (mr=0x7f495b92a468, addr=16, 
> > >> val=2, size=2) at /root/work/xen/tools/qemu-xen-dir/memory.c:1744
> > >> #17 0x00007f495ae328d3 in address_space_rw (as=0x7f495b7c3600, 
> > >> addr=49200, buf=0x7fff564e8e60 "\002", len=2, is_write=true) at 
> > >> /root/work/xen/tools/qemu-xen-dir/exec.c:2029
> > >> #18 0x00007f495ae32c85 in address_space_write (as=0x7f495b7c3600, 
> > >> addr=49200, buf=0x7fff564e8e60 "\002", len=2) at 
> > >> /root/work/xen/tools/qemu-xen-dir/exec.c:2091
> > >> #19 0x00007f495ae9c130 in cpu_outw (addr=49200, val=2) at 
> > >> /root/work/xen/tools/qemu-xen-dir/ioport.c:77
> > >> #20 0x00007f495af289d0 in do_outp (addr=49200, size=2, val=2) at 
> > >> /root/work/xen/tools/qemu-xen-dir/xen-hvm.c:668
> > >> #21 0x00007f495af28b94 in cpu_ioreq_pio (req=0x7f495ab25000) at 
> > >> /root/work/xen/tools/qemu-xen-dir/xen-hvm.c:729
> > >> #22 0x00007f495af28ee5 in handle_ioreq (req=0x7f495ab25000) at 
> > >> /root/work/xen/tools/qemu-xen-dir/xen-hvm.c:781
> > >> #23 0x00007f495af29237 in cpu_handle_ioreq (opaque=0x7f495b884ad0) at 
> > >> /root/work/xen/tools/qemu-xen-dir/xen-hvm.c:856
> > >> #24 0x00007f495ad7d2c2 in qemu_iohandler_poll (pollfds=0x7f495b823820, 
> > >> ret=1) at iohandler.c:143
> > >> #25 0x00007f495ad7e2fd in main_loop_wait (nonblocking=0) at 
> > >> main-loop.c:485
> > >> #26 0x00007f495ae1386f in main_loop () at vl.c:2056
> > >> #27 0x00007f495ae1af17 in main (argc=35, argv=0x7fff564e94c8, 
> > >> envp=0x7fff564e95e8) at vl.c:4535
> > >> (gdb) q
> > >>
> > >>
> > > Added qemu-devel and qemu maintainer in xen to cc.
> > > 
> > > @Wen Congyang: when you report a bug is useful add more details and logs, 
> > > domU's xl cfg, domU's qemu log, xen and qemu version used ecc...
> > > .
> > > 
> > 
> > The config file is not backuped before changing. I remember I only change 
> > vcpus and nic model.
> > Here is the config file:
> > ===================================================
> > builder='hvm'
> > 
> > memory = 2048
> > vcpus=2
> > cpus="3"
> > 
> > name = "hvm_nopv"
> > 
> > disk = [ 
> > 'format=raw,devtype=disk,access=w,vdev=hda,target=/data/images/xen/hvm_nopv/suse/hvm.img'
> > #      , 
> > 'format=raw,devtype=disk,access=w,vdev=hdb,target=/data/images/xen/hvm_nopv/suse/hvm_data.img'
> >        ]
> > 
> > vif = [ 'mac=00:16:4f:00:00:11, bridge=br0, model=virtio-net' ]
> > 
> > #-----------------------------------------------------------------------------
> > # boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
> > # default: hard disk, cd-rom, floppy
> > boot="c"
> > 
> > sdl=0
> > 
> > vnc=1
> > 
> > vnclisten='0.0.0.0'
> > 
> > vncunused = 1
> > 
> > stdvga = 0
> > 
> > serial='pty'
> > 
> > apic=1
> > apci=1
> > pae=1
> > 
> > extid=0
> > keymap="en-us"
> > localtime=1
> > hpet=1
> > 
> > usbdevice='tablet'
> > 
> > xen_platform_pci=0
> > ===================================================
> > 
> > qemu log(/var/log/xen/qemu-xxx):
> > char device redirected to /dev/pts/2 (label serial0)
> > xen_ram_addr_from_mapcache, could not find 0x7f267bd828e8
> > 
> > qemu version:
> > qemu-upstream-unstable:
> > http://xenbits.xen.org/gitweb/?p=qemu-upstream-unstable.git;a=summary
> > commit: ca78cc83650b535d7e24baeaea32947be0141534
> > 
> > xl: not the newest, commit c90a755f261b8ccb3dac7e1f695122cac95c6053. I 
> > change
> > some codes(remus related/suspend/resume...)
> > 
> 
> _______________________________________________
> Xen-devel mailing list
> xen-de...@lists.xen.org
> http://lists.xen.org/xen-devel
> 

Reply via email to