[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] qemu crash with virtio on Xen domUs (backtrace included)



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=7f9609bedb44 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-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.