qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL v2 for-2.4 v2 5/7] AioContext: fix broken ctx->di


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PULL v2 for-2.4 v2 5/7] AioContext: fix broken ctx->dispatching optimization
Date: Thu, 23 Jul 2015 16:14:13 +0200

On Wed, 22 Jul 2015 12:43:43 +0100
Stefan Hajnoczi <address@hidden> wrote:

> From: Paolo Bonzini <address@hidden>
> 
> This patch rewrites the ctx->dispatching optimization, which was the cause
> of some mysterious hangs that could be reproduced on aarch64 KVM only.
> The hangs were indirectly caused by aio_poll() and in particular by
> flash memory updates's call to blk_write(), which invokes aio_poll().
> Fun stuff: they had an extremely short race window, so much that
> adding all kind of tracing to either the kernel or QEMU made it
> go away (a single printf made it half as reproducible).

Sadly, this commit seems to *introduce* hangs on my s390x setup - i.e.
the guest does not react at all.

Thread 1 seems to be stuck in dataplane setup:

(gdb) bt 
#0  0x000003fffc5871b4 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
#1  0x000000008024cfca in qemu_cond_wait (address@hidden, 
    address@hidden)
    at /data/git/yyy/qemu/util/qemu-thread-posix.c:132
#2  0x000000008025e83a in rfifolock_lock (r=0x9717d920)
    at /data/git/yyy/qemu/util/rfifolock.c:59
#3  0x00000000801b78fa in aio_context_acquire (ctx=<optimized out>)
    at /data/git/yyy/qemu/async.c:331
#4  0x000000008007ceb4 in virtio_blk_data_plane_start (s=0x9717d710)
    at /data/git/yyy/qemu/hw/block/dataplane/virtio-blk.c:285
#5  0x000000008007c64a in virtio_blk_handle_output (vdev=<optimized out>, 
    vq=<optimized out>) at /data/git/yyy/qemu/hw/block/virtio-blk.c:599
#6  0x00000000801c56dc in qemu_iohandler_poll (pollfds=0x97142800, 
    address@hidden) at /data/git/yyy/qemu/iohandler.c:126
#7  0x00000000801c5178 in main_loop_wait (nonblocking=<optimized out>)
    at /data/git/yyy/qemu/main-loop.c:494
#8  0x0000000080013ee2 in main_loop () at /data/git/yyy/qemu/vl.c:1902
#9  main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>)
    at /data/git/yyy/qemu/vl.c:4653

I've stripped down the setup to the following commandline:

/data/git/yyy/qemu/build/s390x-softmmu/qemu-system-s390x  -machine 
s390-ccw-virtio-2.4,accel=kvm,usb=off -m 1024 -smp 
4,sockets=4,cores=1,threads=1 -nographic -drive 
file=/dev/sda,if=none,id=drive-virtio-disk0,format=raw,serial=ccwzfcp1,cache=none,aio=native
 -device 
virtio-blk-ccw,scsi=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1,x-data-plane=on

Instant hang for me :(




reply via email to

[Prev in Thread] Current Thread [Next in Thread]