On 2011-06-10 05:08, Amos Kong wrote: > host kernel: 2.6.39-rc2+ > qemu-kvm : 05f1737582ab6c075476bde931c5eafbc62a9349 > > (gdb) r -monitor stdio -m 800 ~/RHEL-Server-6.0-64-virtio.qcow2 -snapshot -device virtio-net-pci,netdev=he -netdev tap,vhost=on,id=he > > (qemu) [New Thread 0x7fffbe7dd700 (LWP 10410)] > [New Thread 0x7fffbdfdc700 (LWP 10411)] > qemu-kvm: /project/rh/qemu-kvm/hw/msix.c:616: msix_unset_mask_notifier: Assertion `dev->msix_mask_notifier' failed. > > Program received signal SIGABRT, Aborted. > [Switching to Thread 0x7ffff3233700 (LWP 10405)] > 0x00007ffff6593ba5 in raise () from /lib/libc.so.6 > (gdb) bt > #0 0x00007ffff6593ba5 in raise () from /lib/libc.so.6 > #1 0x00007ffff65976b0 in abort () from /lib/libc.so.6 > #2 0x00007ffff658ca71 in __assert_fail () from /lib/libc.so.6 > #3 0x00000000005754eb in msix_unset_mask_notifier (dev=0x1e56c50) at /project/rh/qemu-kvm/hw/msix.c:616 > #4 0x0000000000571ea4 in virtio_pci_set_guest_notifiers (opaque=0x1e56c50, assign=true) at /project/rh/qemu-kvm/hw/virtio-pci.c:674 > #5 0x000000000042c279 in vhost_dev_start (hdev=0x11c0420, vdev=0x1c40f10) at /project/rh/qemu-kvm/hw/vhost.c:710 > #6 0x0000000000429fe9 in vhost_net_start (net=0x11c0420, dev=0x1c40f10) at /project/rh/qemu-kvm/hw/vhost_net.c:142 > #7 0x0000000000425644 in virtio_net_vhost_status (n=0x1c40f10, status=7 '\a') at /project/rh/qemu-kvm/hw/virtio-net.c:127 > #8 0x00000000004256ec in virtio_net_set_status (vdev=0x1c40f10, status=7 '\a') at /project/rh/qemu-kvm/hw/virtio-net.c:144 > #9 0x00000000005709e6 in virtio_set_status (vdev=0x1c40f10, val=7 '\a') at /project/rh/qemu-kvm/hw/virtio.h:136 > #10 0x000000000057136f in virtio_ioport_write (opaque=0x1e56c50, addr=18, val=7) at /project/rh/qemu-kvm/hw/virtio-pci.c:338 > #11 0x00000000005717db in virtio_pci_config_writeb (opaque=0x1e56c50, addr=18, val=7) at /project/rh/qemu-kvm/hw/virtio-pci.c:462 > #12 0x000000000048409d in ioport_write (index=0, address=49202, data=7) at ioport.c:81 > #13 0x0000000000484756 in cpu_outb (addr=49202, val=7 '\a') at ioport.c:266 > #14 0x0000000000432dd2 in kvm_handle_io (port=49202, data=0x7ffff7ff3000, direction=1, size=1, count=1) at /project/rh/qemu-kvm/kvm-all.c:864 > #15 0x0000000000433266 in kvm_cpu_exec (env=0x188e5b0) at /project/rh/qemu-kvm/kvm-all.c:1008 > #16 0x00000000004091ef in qemu_kvm_cpu_thread_fn (arg=0x188e5b0) at /project/rh/qemu-kvm/cpus.c:808 > #17 0x00007ffff79be971 in start_thread () from /lib/libpthread.so.0 > #18 0x00007ffff664692d in clone () from /lib/libc.so.6 > #19 0x0000000000000000 in ?? () I already came across that symptom in a different context. Fixed by the patch below. However, the real issue is related to an upstream cleanup of the virtio-pci build. That reveals some unneeded build dependencies in qemu-kvm. Will post a fix. Jan -----8<----- From: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> qemu-kvm: Fix error path of virtio_pci_set_guest_notifiers The mask notifier is never installed on error, so this deinstallation will just trigger an assert in msix_unset_mask_notifier. Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> --- hw/virtio-pci.c | 4 ---- 1 files changed, 0 insertions(+), 4 deletions(-) diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c index c4735c5..311c47b 100644 --- a/hw/virtio-pci.c +++ b/hw/virtio-pci.c @@ -688,10 +688,6 @@ static int virtio_pci_set_guest_notifiers(void *opaque, bool assign) assign_error: /* We get here on assignment failure. Recover by undoing for VQs 0 .. n. */ - if (assign) { - msix_unset_mask_notifier(&proxy->pci_dev); - } - while (--n >= 0) { virtio_pci_set_guest_notifier(opaque, n, !assign); } -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html