* Christoph Hellwig <h...@lst.de> [2011-08-21 17:27]: > changes since V1: > - rebase to apply against the current qemu.git tree
Testing on tip + this series with: ./configure --enable-debug --enable-kvm --enable-io-thread --target-list=x86_64-softmmu x86_64-softmmu/qemu-system-x86_64 --enable-kvm -L pc-bios -m 2048 -drive file=/var/lib/libvirt/images/test01_20G.raw,if=virtio,cache=none -cdrom /var/lib/libvirt/images/Fedora-15-x86_64-Live-Desktop.iso -monitor stdio -vnc :5 during boot, I run one info blockstats, then during boot of F15 live env with 1 virtio-blk devices we segfault. (qemu) info blockstats virtio0: rd_bytes=512 wr_bytes=0 rd_operations=1 wr_operations=0 flush_operations=0 wr_total_time_ns=927403 rd_total_time_ns=0 flush_total_time_ns=0 ide1-cd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 flush_operations=0 wr_total_time_ns=0 rd_total_time_ns=0 flush_total_time_ns=0 floppy0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 flush_operations=0 wr_total_time_ns=0 rd_total_time_ns=0 flush_total_time_ns=0 sd0: rd_bytes=0 wr_bytes=0 rd_operations=0 wr_operations=0 flush_operations=0 wr_total_time_ns=0 rd_total_time_ns=0 flush_total_time_ns=0 (qemu) [New Thread 0x7ffff5928700 (LWP 18032)] [New Thread 0x7ffff4f27700 (LWP 18033)] Program received signal SIGSEGV, Segmentation fault. 0x00000000004200c1 in bdrv_acct_done (bs=0x12310b0, cookie=0x1c69f50) at /root/git/qemu/block_int.h:239 239 bs->nr_bytes[cookie->type] += cookie->bytes; Missing separate debuginfos, use: debuginfo-install cyrus-sasl-gssapi-2.1.23-8.el6.x86_64 cyrus-sasl-lib-2.1.23-8.el6.x86_64 cyrus-sasl-md5-2.1.23-8.el6.x86_64 cyrus-sasl-plain-2.1.23-8.el6.x86_64 db4-4.7.25-16.el6.x86_64 glib2-2.22.5-6.el6.x86_64 glibc-2.12-1.25.el6.x86_64 gnutls-2.8.5-4.el6.x86_64 keyutils-libs-1.4-1.el6.x86_64 krb5-libs-1.9-9.el6.x86_64 libattr-2.4.44-4.el6.x86_64 libcom_err-1.41.12-7.el6.x86_64 libcurl-7.19.7-26.el6.x86_64 libgcrypt-1.4.5-5.el6.x86_64 libgpg-error-1.7-3.el6.x86_64 libidn-1.18-2.el6.x86_64 libpng-1.2.44-1.el6.x86_64 libselinux-2.0.94-5.el6.x86_64 libssh2-1.2.2-7.el6.x86_64 libtasn1-2.3-3.el6.x86_64 ncurses-libs-5.7-3.20090208.el6.x86_64 nspr-4.8.7-1.el6.x86_64 nss-3.12.9-9.el6.x86_64 nss-softokn-freebl-3.12.9-3.el6.x86_64 nss-util-3.12.9-1.el6.x86_64 openldap-2.4.23-15.el6.x86_64 openssl-1.0.0-10.el6.x86_64 zlib-1.2.3-25.el6.x86_64 (gdb) bt #0 0x00000000004200c1 in bdrv_acct_done (bs=0x12310b0, cookie=0x1c69f50) at /root/git/qemu/block_int.h:239 #1 0x00000000004202c1 in virtio_blk_req_complete (req=0x1c5df00, status=0) at /root/git/qemu/hw/virtio-blk.c:63 #2 0x0000000000420fdb in virtio_blk_handle_request (req=0x1c5df00, mrb=0x7fffffffd1c0) at /root/git/qemu/hw/virtio-blk.c:380 #3 0x00000000004210f4 in virtio_blk_handle_output (vdev=0x1aa2040, vq=0x1aa2110) at /root/git/qemu/hw/virtio-blk.c:401 #4 0x000000000041e932 in virtio_queue_notify_vq (vq=0x1aa2110) at /root/git/qemu/hw/virtio.c:630 #5 0x00000000005b2aa4 in virtio_pci_host_notifier_read (opaque=0x1aa2110) at /root/git/qemu/hw/virtio-pci.c:196 #6 0x00000000004d5b4a in qemu_iohandler_poll (readfds=0x7fffffffda10, writefds=0x7fffffffd990, xfds= 0x7fffffffd910, ret=1) at iohandler.c:120 #7 0x00000000005a9795 in main_loop_wait (nonblocking=0) at /root/git/qemu/vl.c:1356 #8 0x00000000005a9816 in main_loop () at /root/git/qemu/vl.c:1400 #9 0x00000000005ae058 in main (argc=14, argv=0x7fffffffdec8, envp=0x7fffffffdf40) at /root/git/qemu/vl.c:3383 (gdb) frame 0 #0 0x00000000004200c1 in bdrv_acct_done (bs=0x12310b0, cookie=0x1c69f50) at /root/git/qemu/block_int.h:239 239 bs->nr_bytes[cookie->type] += cookie->bytes; (gdb) p *cookie $1 = {bytes = 72057589759737855, start_time_ns = 72057589759737855, type = 16777215} (gdb) p *bs $2 = {total_sectors = 41943040, read_only = 0, keep_read_only = 0, open_flags = 98, removable = 0, locked = 0, tray_open = 0, encrypted = 0, valid_key = 0, sg = 0, change_cb = 0x42172c <virtio_blk_change_cb>, change_opaque = 0x1aa2040, drv = 0x9d9e40, opaque = 0x1231b60, peer = 0x1aa13c0, filename = "/var/lib/libvirt/images/test01_20G.raw", '\000' <repeats 985 times>, backing_file = '\000' <repeats 1023 times>, backing_format = '\000' <repeats 15 times>, is_temporary = 0, media_changed = 1, backing_hd = 0x0, file = 0x1231b80, sync_aiocb = 0x0, nr_bytes = {349184, 0, 0}, nr_ops = {87, 0, 0}, total_time_ns = {15991329, 0, 0}, wr_highest_sector = 0, growable = 0, buffer_alignment = 512, enable_write_cache = 1, cyls = 16383, heads = 16, secs = 63, translation = 0, on_read_error = BLOCK_ERR_REPORT, on_write_error = BLOCK_ERR_STOP_ENOSPC, device_name = "virtio0", '\000' <repeats 24 times>, dirty_bitmap = 0x0, dirty_count = 0, in_use = 0, list = {tqe_next = 0x12326a0, tqe_prev = 0x9d8e10}, private = 0x0} (gdb) list 234 } 235 236 static inline void 237 bdrv_acct_done(BlockDriverState *bs, BlockAcctCookie *cookie) 238 { 239 bs->nr_bytes[cookie->type] += cookie->bytes; 240 bs->nr_ops[cookie->type]++; 241 bs->total_time_ns[cookie->type] += get_clock() - cookie->start_time_ns; 242 } 243 -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx ry...@us.ibm.com