On 04/01/2016 03:19 PM, Paolo Bonzini wrote: > This version fixes some commit messages, is based on qemu.git master > and adds Cornelia's Reviewed-by tags. There are no code changes apart > from context. > > Michael S. Tsirkin (2): > virtio: add aio handler > virtio-blk: use aio handler for data plane > > Paolo Bonzini (7): > virtio-dataplane: pass assign=true to > virtio_queue_aio_set_host_notifier_handler > virtio: make virtio_queue_notify_vq static > virtio-blk: fix disabled mode > virtio-scsi: fix disabled mode > virtio-scsi: use aio handler for data plane > virtio: merge virtio_queue_aio_set_host_notifier_handler with > virtio_queue_set_aio > virtio: remove starting/stopping checks > > hw/block/dataplane/virtio-blk.c | 35 +++++++++++---------- > hw/block/virtio-blk.c | 29 ++++++++++------- > hw/scsi/virtio-scsi-dataplane.c | 56 +++++++++++++++++++++++---------- > hw/scsi/virtio-scsi.c | 69 > +++++++++++++++++++++++++++-------------- > hw/virtio/virtio.c | 37 ++++++++++++++++------ > include/hw/virtio/virtio-blk.h | 3 ++ > include/hw/virtio/virtio-scsi.h | 9 ++---- > include/hw/virtio/virtio.h | 4 +-- > 8 files changed, 158 insertions(+), 84 deletions(-) >
2.6-rc0 + this patch gives several occurences of segmentation fault when starting several guests with a reboot loop, e.g. something like using 0 as a pointer for a pthread_mutex. Thread 1 (Thread 0x3ff7b1ff910 (LWP 24233)): #0 0x000003ff7d18a178 in pthread_mutex_lock () at /lib64/libpthread.so.0 #1 0x0000000080250572 in qemu_mutex_lock (mutex=mutex@entry=0xf0) at /home/cborntra/REPOS/qemu/util/qemu-thread-posix.c:64 #2 0x00000000801b3e14 in aio_bh_new (ctx=0x0, cb=cb@entry=0x801ef148 <blk_aio_complete_bh>, opaque=opaque@entry=0x3ff74000a50) at /home/cborntra/REPOS/qemu/async.c:55 #3 0x00000000801f0bf0 in blk_aio_prwv (blk=0x808ee1f0, offset=4096, qiov=0x3ff740009b8, co_entry=co_entry@entry=0x801efef8 <blk_aio_read_entry>, flags=flags@entry=(unknown: 0), cb=0x8007fb50 <virtio_blk_rw_complete>, opaque=0x3ff74000960) at /home/cborntra/REPOS/qemu/block/block-backend.c:904 #4 0x00000000801f0cc8 in blk_aio_readv (blk=<optimized out>, sector_num=<optimized out>, iov=<optimized out>, nb_sectors=<optimized out>, cb=<optimized out>, opaque=0x3ff74000960) at /home/cborntra/REPOS/qemu/block/block-backend.c:997 #5 0x000000008008062e in virtio_blk_submit_multireq (niov=<optimized out>, num_reqs=<optimized out>, start=<optimized out>, mrb=<optimized out>, blk=<optimized out>) at /home/cborntra/REPOS/qemu/hw/block/virtio-blk.c:361 ---Type <return> to continue, or q <return> to quit--- #6 0x000000008008062e in virtio_blk_submit_multireq (blk=<optimized out>, mrb=mrb@entry=0x3ff7b1fe780) at /home/cborntra/REPOS/qemu/hw/block/virtio-blk.c:391 #7 0x00000000800811d4 in virtio_blk_handle_vq (s=0x8090c608, vq=<optimized out>) at /home/cborntra/REPOS/qemu/hw/block/virtio-blk.c:593 #8 0x000000008009c9ee in virtio_queue_host_notifier_aio_read (vq=0x80d361d0) at /home/cborntra/REPOS/qemu/hw/virtio/virtio.c:1098 #9 0x000000008009c9ee in virtio_queue_host_notifier_aio_read (n=0x80d36230) at /home/cborntra/REPOS/qemu/hw/virtio/virtio.c:1799 #10 0x00000000801bece6 in aio_dispatch (ctx=ctx@entry=0x808c35d0) at /home/cborntra/REPOS/qemu/aio-posix.c:327 #11 0x00000000801bef44 in aio_poll (ctx=0x808c35d0, blocking=<optimized out>) at /home/cborntra/REPOS/qemu/aio-posix.c:475 #12 0x00000000800e2db8 in iothread_run (opaque=0x808c3090) at /home/cborntra/REPOS/qemu/iothread.c:46 #13 0x000003ff7d187c2c in start_thread () at /lib64/libpthread.so.0 #14 0x000003ff7d08ec9a in thread_start () at /lib64/libc.so.6