* [bug 1.1] -M pc-1.0 + vhost = SIGSEGV
@ 2012-07-01 15:06 Michael Tokarev
2012-07-01 15:26 ` Michael Tokarev
2012-07-02 7:20 ` Jan Kiszka
0 siblings, 2 replies; 4+ messages in thread
From: Michael Tokarev @ 2012-07-01 15:06 UTC (permalink / raw)
To: KVM list
When running current git version of qemu-kvm with -M pc-1.0
and with vhost-net enabled, it crashes with SIGSEGV right when
linux guest loads a virtio-net module.
I haven't tried to debug this deeply. The first result is:
(gdb) ru -M pc-1.0 -nodefconfig -nodefaults -rtc base=utc -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,ifname=tap-kvm,script=no,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b4:05:b5,bus=pci.0,addr=0x3 -vga cirrus
Starting program: /build/kvm/debian/build/x86_64-softmmu/qemu-system-x86_64 -M pc-1.0 -nodefconfig -nodefaults -rtc base=utc -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,ifname=tap-kvm,script=no,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b4:05:b5,bus=pci.0,addr=0x3 -vga cirrus
...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf65f4b70 (LWP 11245)]
0x5668b01a in virtio_pci_mask_vq (vector=vector@entry=1, vq=0x57064448,
masked=masked@entry=0,
dev=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
at /build/kvm/debian/hw/virtio-pci.c:546
546 int r = kvm_set_irqfd(dev->msix_irq_entries[vector].gsi,
Now, my gdb can't read `dev' variable. One level up the stack
this variable is shown correctly:
#1 0x5668b15d in virtio_pci_mask_notifier (dev=0x57062748, vector=1, masked=0)
at /build/kvm/debian/hw/virtio-pci.c:576
576 r = virtio_pci_mask_vq(dev, vector, virtio_get_queue(vdev, n), masked);
(gdb) p dev->msix_irq_entries[vector].gsi
Cannot access memory at address 0x10
(gdb) p dev
$1 = (PCIDevice *) 0x57062748
(gdb) p dev->msix_irq_entries
$4 = (KVMMsiMessage *) 0x0
So it looks like msix isn't initialized for -M pc-1.0 ?
Thanks,
/mjt
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [bug 1.1] -M pc-1.0 + vhost = SIGSEGV
2012-07-01 15:06 [bug 1.1] -M pc-1.0 + vhost = SIGSEGV Michael Tokarev
@ 2012-07-01 15:26 ` Michael Tokarev
2012-07-02 7:20 ` Jan Kiszka
1 sibling, 0 replies; 4+ messages in thread
From: Michael Tokarev @ 2012-07-01 15:26 UTC (permalink / raw)
To: KVM list
On 01.07.2012 19:06, Michael Tokarev wrote:
> When running current git version of qemu-kvm with -M pc-1.0
> and with vhost-net enabled, it crashes with SIGSEGV right when
> linux guest loads a virtio-net module.
And when this happens when a persistent tap device is used,
that tap device becomes unusable until removed and recreated --
it "works" but no network packet goes on. So it looks like
we've two bugs, one in userspace qemu 1.1 and another in
host kernel (3.0).
Thanks,
/mjt
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug 1.1] -M pc-1.0 + vhost = SIGSEGV
2012-07-01 15:06 [bug 1.1] -M pc-1.0 + vhost = SIGSEGV Michael Tokarev
2012-07-01 15:26 ` Michael Tokarev
@ 2012-07-02 7:20 ` Jan Kiszka
2012-07-02 9:30 ` Michael Tokarev
1 sibling, 1 reply; 4+ messages in thread
From: Jan Kiszka @ 2012-07-02 7:20 UTC (permalink / raw)
To: Michael Tokarev; +Cc: KVM list
On 2012-07-01 17:06, Michael Tokarev wrote:
> When running current git version of qemu-kvm with -M pc-1.0
Just to clarify: you are talking about stable-1.1 git, not master.
> and with vhost-net enabled, it crashes with SIGSEGV right when
> linux guest loads a virtio-net module.
>
> I haven't tried to debug this deeply. The first result is:
>
> (gdb) ru -M pc-1.0 -nodefconfig -nodefaults -rtc base=utc -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,ifname=tap-kvm,script=no,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b4:05:b5,bus=pci.0,addr=0x3 -vga cirrus
> Starting program: /build/kvm/debian/build/x86_64-softmmu/qemu-system-x86_64 -M pc-1.0 -nodefconfig -nodefaults -rtc base=utc -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -netdev tap,ifname=tap-kvm,script=no,id=hostnet0,vhost=on -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:b4:05:b5,bus=pci.0,addr=0x3 -vga cirrus
> ...
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0xf65f4b70 (LWP 11245)]
> 0x5668b01a in virtio_pci_mask_vq (vector=vector@entry=1, vq=0x57064448,
> masked=masked@entry=0,
> dev=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
> at /build/kvm/debian/hw/virtio-pci.c:546
> 546 int r = kvm_set_irqfd(dev->msix_irq_entries[vector].gsi,
>
> Now, my gdb can't read `dev' variable. One level up the stack
> this variable is shown correctly:
>
> #1 0x5668b15d in virtio_pci_mask_notifier (dev=0x57062748, vector=1, masked=0)
> at /build/kvm/debian/hw/virtio-pci.c:576
> 576 r = virtio_pci_mask_vq(dev, vector, virtio_get_queue(vdev, n), masked);
> (gdb) p dev->msix_irq_entries[vector].gsi
> Cannot access memory at address 0x10
> (gdb) p dev
> $1 = (PCIDevice *) 0x57062748
> (gdb) p dev->msix_irq_entries
> $4 = (KVMMsiMessage *) 0x0
>
> So it looks like msix isn't initialized for -M pc-1.0 ?
Yes, because the machine option defaults are missing here. Will send a
patch.
Also vhost is buggy as it depends on in-kernel irqchip but doesn't check
for it. Needs to be fixed as well.
Jan
--
Siemens AG, Corporate Technology, CT RTC ITP SDP-DE
Corporate Competence Center Embedded Linux
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug 1.1] -M pc-1.0 + vhost = SIGSEGV
2012-07-02 7:20 ` Jan Kiszka
@ 2012-07-02 9:30 ` Michael Tokarev
0 siblings, 0 replies; 4+ messages in thread
From: Michael Tokarev @ 2012-07-02 9:30 UTC (permalink / raw)
To: Jan Kiszka; +Cc: KVM list, Michael S. Tsirkin
02.07.2012 11:20, Jan Kiszka wrote:
> On 2012-07-01 17:06, Michael Tokarev wrote:
>> When running current git version of qemu-kvm with -M pc-1.0
>
> Just to clarify: you are talking about stable-1.1 git, not master.
Yes, as the $Subject (partially) says.
[]
>> So it looks like msix isn't initialized for -M pc-1.0 ?
And for earlier pc numbers too (eg -M pc-0.15).
> Yes, because the machine option defaults are missing here. Will send a
> patch.
>
> Also vhost is buggy as it depends on in-kernel irqchip but doesn't check
> for it. Needs to be fixed as well.
And while we're at it, can we please take a look at the kernel
side of this bug, mentioned in other my email? Namely, when
qemu-kvm sigsegvs in this place, the (persistent) tap device
becomes unusable and needs to be re-created (no packets are
flowing). We've a nice "reproducer" now for this kernel issue.
(Cc'ing mst for this)
Thanks,
/mjt
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-07-02 9:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-01 15:06 [bug 1.1] -M pc-1.0 + vhost = SIGSEGV Michael Tokarev
2012-07-01 15:26 ` Michael Tokarev
2012-07-02 7:20 ` Jan Kiszka
2012-07-02 9:30 ` Michael Tokarev
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.