* [Qemu-devel] virtio-blk/qdev failure in the current git tree @ 2009-08-10 23:56 Christoph Hellwig 2009-08-11 0:29 ` Anthony Liguori 0 siblings, 1 reply; 21+ messages in thread From: Christoph Hellwig @ 2009-08-10 23:56 UTC (permalink / raw) To: qemu-devel Since today's merges I can't boot my virtio test setup anymore, but get an error from the qdev code: property "virtio-blk-pci.drive" has no parser can't set property "drive" to "virtio0" for "virtio-blk-pci" The qemu command line is: /opt/qemu/bin/qemu-system-x86_64 \ -m 1000 -enable-kvm \ -kernel arch/x86/boot/bzImage \ -drive file=/dev/vg00/qemu-root,if=virtio,media=disk,cache=writeback \ -drive file=/dev/vg00/qemu-data,if=virtio,media=disk,cache=none \ -append "root=/dev/vda console=tty0 console=ttyS0,38400n8" ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-10 23:56 [Qemu-devel] virtio-blk/qdev failure in the current git tree Christoph Hellwig @ 2009-08-11 0:29 ` Anthony Liguori 2009-08-11 16:13 ` Christoph Hellwig 0 siblings, 1 reply; 21+ messages in thread From: Anthony Liguori @ 2009-08-11 0:29 UTC (permalink / raw) To: Christoph Hellwig; +Cc: qemu-devel Christoph Hellwig wrote: > Since today's merges I can't boot my virtio test setup anymore, but get > an error from the qdev code: > > property "virtio-blk-pci.drive" has no parser > can't set property "drive" to "virtio0" for "virtio-blk-pci" > I'll push a fix. I'm sure it's my fault, although I'm not exactly sure what happened. Thanks. Regards, Anthony Liguori > The qemu command line is: > > /opt/qemu/bin/qemu-system-x86_64 \ > -m 1000 -enable-kvm \ > -kernel arch/x86/boot/bzImage \ > -drive file=/dev/vg00/qemu-root,if=virtio,media=disk,cache=writeback \ > -drive file=/dev/vg00/qemu-data,if=virtio,media=disk,cache=none \ > -append "root=/dev/vda console=tty0 console=ttyS0,38400n8" > > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-11 0:29 ` Anthony Liguori @ 2009-08-11 16:13 ` Christoph Hellwig 2009-08-11 16:36 ` Christoph Hellwig 0 siblings, 1 reply; 21+ messages in thread From: Christoph Hellwig @ 2009-08-11 16:13 UTC (permalink / raw) To: Anthony Liguori; +Cc: Christoph Hellwig, qemu-devel On Mon, Aug 10, 2009 at 07:29:31PM -0500, Anthony Liguori wrote: > Christoph Hellwig wrote: > >Since today's merges I can't boot my virtio test setup anymore, but get > >an error from the qdev code: > > > >property "virtio-blk-pci.drive" has no parser > >can't set property "drive" to "virtio0" for "virtio-blk-pci" > > > > I'll push a fix. I'm sure it's my fault, although I'm not exactly sure > what happened. Thanks. With the fix pulled it the guest kernel now hangs after input: ImExPS/2 Generic Explorer Mouse as /class/input/input2 Clocksource tsc unstable (delta = -782142631 ms) when reducing the config to just one virtio-blk device it books, but with a longish break at the point where the original config hangs. ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-11 16:13 ` Christoph Hellwig @ 2009-08-11 16:36 ` Christoph Hellwig 2009-08-11 18:45 ` Anthony Liguori 2009-08-11 19:28 ` Gerd Hoffmann 0 siblings, 2 replies; 21+ messages in thread From: Christoph Hellwig @ 2009-08-11 16:36 UTC (permalink / raw) To: Anthony Liguori; +Cc: kraxel, qemu-devel On Tue, Aug 11, 2009 at 06:13:02PM +0200, Christoph Hellwig wrote: > With the fix pulled it the guest kernel now hangs after > > input: ImExPS/2 Generic Explorer Mouse as /class/input/input2 > Clocksource tsc unstable (delta = -782142631 ms) > > when reducing the config to just one virtio-blk device it books, but > with a longish break at the point where the original config hangs. The culprit is commit d176c495b6664b72dc1e595f6e89dc5648aa248b qdev-ify virtio-blk. reverting it (needs some manual work due to the macrofication of the qdev attributes) fixes the boot again. > ---end quoted text--- ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-11 16:36 ` Christoph Hellwig @ 2009-08-11 18:45 ` Anthony Liguori 2009-08-11 19:28 ` Gerd Hoffmann 1 sibling, 0 replies; 21+ messages in thread From: Anthony Liguori @ 2009-08-11 18:45 UTC (permalink / raw) To: Christoph Hellwig; +Cc: kraxel, qemu-devel Christoph Hellwig wrote: > On Tue, Aug 11, 2009 at 06:13:02PM +0200, Christoph Hellwig wrote: > >> With the fix pulled it the guest kernel now hangs after >> >> input: ImExPS/2 Generic Explorer Mouse as /class/input/input2 >> Clocksource tsc unstable (delta = -782142631 ms) >> >> when reducing the config to just one virtio-blk device it books, but >> with a longish break at the point where the original config hangs. >> > > The culprit is commit d176c495b6664b72dc1e595f6e89dc5648aa248b > > qdev-ify virtio-blk. > > reverting it (needs some manual work due to the macrofication of the > qdev attributes) fixes the boot again. > It should be fixed in the latest git. Regards, Anthony Liguori > ---end quoted text--- > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-11 16:36 ` Christoph Hellwig 2009-08-11 18:45 ` Anthony Liguori @ 2009-08-11 19:28 ` Gerd Hoffmann 2009-08-12 9:26 ` Gerd Hoffmann 1 sibling, 1 reply; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-11 19:28 UTC (permalink / raw) To: Christoph Hellwig; +Cc: qemu-devel On 08/11/09 18:36, Christoph Hellwig wrote: > On Tue, Aug 11, 2009 at 06:13:02PM +0200, Christoph Hellwig wrote: >> With the fix pulled it the guest kernel now hangs after >> >> input: ImExPS/2 Generic Explorer Mouse as /class/input/input2 >> Clocksource tsc unstable (delta = -782142631 ms) >> >> when reducing the config to just one virtio-blk device it books, but >> with a longish break at the point where the original config hangs. > > The culprit is commit d176c495b6664b72dc1e595f6e89dc5648aa248b > > qdev-ify virtio-blk. > > reverting it (needs some manual work due to the macrofication of the > qdev attributes) fixes the boot again. Hmm. I suspect this is not related to qdev and virtio-blk at all. I've noticed now and then that some pci devices don't work if you have many of them. Didn't try (yet) to root-cause that one. The commit changes the initialization order of the virtio-blk devices, which probably makes them being placed in other PCI slots, which in turn might uncover the bug mentioned above in your setup. How are the pci devices assigned to slots with and without the patch? Does removing the balloon device (-balloon none) change the behavior? Does removing the nic (-net none) too change the behavior? cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-11 19:28 ` Gerd Hoffmann @ 2009-08-12 9:26 ` Gerd Hoffmann 2009-08-12 10:00 ` Avi Kivity 2009-08-12 10:08 ` Gerd Hoffmann 0 siblings, 2 replies; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-12 9:26 UTC (permalink / raw) To: Christoph Hellwig; +Cc: qemu-devel On 08/11/09 21:28, Gerd Hoffmann wrote: > Hmm. I suspect this is not related to qdev and virtio-blk at all. I've > noticed now and then that some pci devices don't work if you have many > of them. Didn't try (yet) to root-cause that one. More testing: Bare virtual box with just piix+vga. Then place a virtio disk into different slots using addr=. 3,4,5 work fine. 6 gives me: ACPI: Unable to derive IRQ for device 0000:00:06.0 ACPI: PCI Interrupt 0000:00:06.0[A]: no GSI - using IRQ 9 vda: <hangs here> Looks like a irq routing issue ... cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 9:26 ` Gerd Hoffmann @ 2009-08-12 10:00 ` Avi Kivity 2009-08-12 10:19 ` Gerd Hoffmann 2009-08-12 21:50 ` Christoph Hellwig 2009-08-12 10:08 ` Gerd Hoffmann 1 sibling, 2 replies; 21+ messages in thread From: Avi Kivity @ 2009-08-12 10:00 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: Christoph Hellwig, qemu-devel On 08/12/2009 12:26 PM, Gerd Hoffmann wrote: > On 08/11/09 21:28, Gerd Hoffmann wrote: >> Hmm. I suspect this is not related to qdev and virtio-blk at all. I've >> noticed now and then that some pci devices don't work if you have many >> of them. Didn't try (yet) to root-cause that one. > > More testing: Bare virtual box with just piix+vga. Then place a > virtio disk into different slots using addr=. 3,4,5 work fine. 6 > gives me: > > ACPI: Unable to derive IRQ for device 0000:00:06.0 > ACPI: PCI Interrupt 0000:00:06.0[A]: no GSI - using IRQ 9 > vda: <hangs here> > > Looks like a irq routing issue ... What about qemu-kvm.git (and its bios)? There was a lot of irq routing work there, maybe not all of it made it into qemu.git. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:00 ` Avi Kivity @ 2009-08-12 10:19 ` Gerd Hoffmann 2009-08-12 10:40 ` Gerd Hoffmann 2009-08-12 21:50 ` Christoph Hellwig 1 sibling, 1 reply; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-12 10:19 UTC (permalink / raw) To: Avi Kivity; +Cc: Christoph Hellwig, qemu-devel On 08/12/09 12:00, Avi Kivity wrote: > On 08/12/2009 12:26 PM, Gerd Hoffmann wrote: >> On 08/11/09 21:28, Gerd Hoffmann wrote: >>> Hmm. I suspect this is not related to qdev and virtio-blk at all. I've >>> noticed now and then that some pci devices don't work if you have many >>> of them. Didn't try (yet) to root-cause that one. >> >> More testing: Bare virtual box with just piix+vga. Then place a virtio >> disk into different slots using addr=. 3,4,5 work fine. 6 gives me: >> >> ACPI: Unable to derive IRQ for device 0000:00:06.0 >> ACPI: PCI Interrupt 0000:00:06.0[A]: no GSI - using IRQ 9 >> vda: <hangs here> >> >> Looks like a irq routing issue ... > > What about qemu-kvm.git (and its bios)? Works: ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKB] -> GSI 10 (level, high) -> IRQ 10 cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:19 ` Gerd Hoffmann @ 2009-08-12 10:40 ` Gerd Hoffmann 2009-08-12 10:51 ` Avi Kivity 0 siblings, 1 reply; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-12 10:40 UTC (permalink / raw) To: Avi Kivity; +Cc: Christoph Hellwig, qemu-devel On 08/12/09 12:19, Gerd Hoffmann wrote: > On 08/12/09 12:00, Avi Kivity wrote: >> What about qemu-kvm.git (and its bios)? > > Works: > > ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKB] -> GSI 10 (level, > high) -> IRQ 10 From boot log diff: --- qemu.log 2009-08-12 12:26:30.000000000 +0200 +++ kvm.log 2009-08-12 12:20:22.000000000 +0200 @@ -26,21 +26,43 @@ ACPI: PM-Timer IO Port: 0xb008 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) -Processor #0 6:2 APIC version 17 +Processor #0 6:2 APIC version 20 Where does this come from? kernel vs. userspace apic? +ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled) +ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled) [ more of these ] For hotplug cpus I guess? ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) +ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) +ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) +ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) +ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. +ACPI: IRQ5 used by override. ACPI: IRQ9 used by override. +ACPI: IRQ10 used by override. +ACPI: IRQ11 used by override. !!! ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] -ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12) -ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12) -ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11 12) -ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *9 10 11 12) +ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) +ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) +ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) +ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) !!! That indeed looks like a bunch of changes and/or fixes did not find the way to upstream qemu ... cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:40 ` Gerd Hoffmann @ 2009-08-12 10:51 ` Avi Kivity 2009-08-12 11:45 ` Reimar Döffinger 0 siblings, 1 reply; 21+ messages in thread From: Avi Kivity @ 2009-08-12 10:51 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: Christoph Hellwig, qemu-devel On 08/12/2009 01:40 PM, Gerd Hoffmann wrote: > On 08/12/09 12:19, Gerd Hoffmann wrote: >> On 08/12/09 12:00, Avi Kivity wrote: >>> What about qemu-kvm.git (and its bios)? >> >> Works: >> >> ACPI: PCI Interrupt 0000:00:06.0[A] -> Link [LNKB] -> GSI 10 (level, >> high) -> IRQ 10 > > From boot log diff: > > --- qemu.log 2009-08-12 12:26:30.000000000 +0200 > +++ kvm.log 2009-08-12 12:20:22.000000000 +0200 > @@ -26,21 +26,43 @@ > ACPI: PM-Timer IO Port: 0xb008 > ACPI: Local APIC address 0xfee00000 > ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) > -Processor #0 6:2 APIC version 17 > +Processor #0 6:2 APIC version 20 > > Where does this come from? kernel vs. userspace apic? Likely. > > +ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled) > +ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled) > [ more of these ] > > For hotplug cpus I guess? Yes. > > ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > +ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) > +ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) > +ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) > +ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) > ACPI: IRQ0 used by override. > ACPI: IRQ2 used by override. > +ACPI: IRQ5 used by override. > ACPI: IRQ9 used by override. > +ACPI: IRQ10 used by override. > +ACPI: IRQ11 used by override. > > !!! The qemu ioapic doesn't implement polarity, so it happily boots with the lines inverted. > ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] > -ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12) > -ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12) > -ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11 12) > -ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *9 10 11 12) > +ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) > +ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) > +ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) > +ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) > > !!! > > That indeed looks like a bunch of changes and/or fixes did not find > the way to upstream qemu ... Yeah. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:51 ` Avi Kivity @ 2009-08-12 11:45 ` Reimar Döffinger 0 siblings, 0 replies; 21+ messages in thread From: Reimar Döffinger @ 2009-08-12 11:45 UTC (permalink / raw) To: qemu-devel On Wed, Aug 12, 2009 at 01:51:23PM +0300, Avi Kivity wrote: > On 08/12/2009 01:40 PM, Gerd Hoffmann wrote: > > ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) > > +ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) > > +ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) > > +ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) > > +ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) > > ACPI: IRQ0 used by override. > > ACPI: IRQ2 used by override. > > +ACPI: IRQ5 used by override. > > ACPI: IRQ9 used by override. > > +ACPI: IRQ10 used by override. > > +ACPI: IRQ11 used by override. > > > > !!! > > The qemu ioapic doesn't implement polarity, so it happily boots with the > lines inverted. > > > ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] > > -ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12) > > -ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *9 10 11 12) > > -ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11 12) > > -ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 *9 10 11 12) > > +ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) > > +ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) > > +ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) > > +ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) > > > > !!! > > > > That indeed looks like a bunch of changes and/or fixes did not find > > the way to upstream qemu ... > > Yeah. I don't have much of a clue, but I in case it matters can say that with qemu-kvm latest git I had quite a few issues with the eepro100 interrupts never being processed (that was Mac OS X though), probably getting lost somewhere. So I'd be very careful about some of those changes (I was too lazy to investigate, since qemu --enable-kvm just worked ;-) )... ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:00 ` Avi Kivity 2009-08-12 10:19 ` Gerd Hoffmann @ 2009-08-12 21:50 ` Christoph Hellwig 2009-08-12 22:01 ` Anthony Liguori 1 sibling, 1 reply; 21+ messages in thread From: Christoph Hellwig @ 2009-08-12 21:50 UTC (permalink / raw) To: Avi Kivity; +Cc: qemu-devel, Gerd Hoffmann, Christoph Hellwig On Wed, Aug 12, 2009 at 01:00:59PM +0300, Avi Kivity wrote: > >Looks like a irq routing issue ... > > What about qemu-kvm.git (and its bios)? There was a lot of irq routing > work there, maybe not all of it made it into qemu.git. Yeah, qemu-kvm works just fine. The amount of irq routing trouble I see with virtio and upstream qemu is getting really annoying :P ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 21:50 ` Christoph Hellwig @ 2009-08-12 22:01 ` Anthony Liguori 2009-08-13 9:00 ` Avi Kivity 0 siblings, 1 reply; 21+ messages in thread From: Anthony Liguori @ 2009-08-12 22:01 UTC (permalink / raw) To: Christoph Hellwig; +Cc: Gerd Hoffmann, Avi Kivity, qemu-devel Christoph Hellwig wrote: > On Wed, Aug 12, 2009 at 01:00:59PM +0300, Avi Kivity wrote: > >>> Looks like a irq routing issue ... >>> >> What about qemu-kvm.git (and its bios)? There was a lot of irq routing >> work there, maybe not all of it made it into qemu.git. >> > > Yeah, qemu-kvm works just fine. The amount of irq routing trouble I see > with virtio and upstream qemu is getting really annoying :P > Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in the BIOS? Regards, Anthony Liguori ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 22:01 ` Anthony Liguori @ 2009-08-13 9:00 ` Avi Kivity 2009-08-13 12:07 ` Gerd Hoffmann 2009-08-13 12:47 ` Gerd Hoffmann 0 siblings, 2 replies; 21+ messages in thread From: Avi Kivity @ 2009-08-13 9:00 UTC (permalink / raw) To: Anthony Liguori; +Cc: Gerd Hoffmann, Christoph Hellwig, qemu-devel On 08/13/2009 01:01 AM, Anthony Liguori wrote: > Christoph Hellwig wrote: >> On Wed, Aug 12, 2009 at 01:00:59PM +0300, Avi Kivity wrote: >>>> Looks like a irq routing issue ... >>> What about qemu-kvm.git (and its bios)? There was a lot of irq >>> routing work there, maybe not all of it made it into qemu.git. >> >> Yeah, qemu-kvm works just fine. The amount of irq routing trouble I see >> with virtio and upstream qemu is getting really annoying :P > > Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in > the BIOS? > I think so, but not 100% sure. -- error compiling committee.c: too many arguments to function ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-13 9:00 ` Avi Kivity @ 2009-08-13 12:07 ` Gerd Hoffmann 2009-08-13 12:47 ` Gerd Hoffmann 1 sibling, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-13 12:07 UTC (permalink / raw) To: Avi Kivity; +Cc: Christoph Hellwig, qemu-devel [-- Attachment #1: Type: text/plain, Size: 788 bytes --] On 08/13/09 11:00, Avi Kivity wrote: > On 08/13/2009 01:01 AM, Anthony Liguori wrote: >> Christoph Hellwig wrote: >>> On Wed, Aug 12, 2009 at 01:00:59PM +0300, Avi Kivity wrote: >>>>> Looks like a irq routing issue ... >>>> What about qemu-kvm.git (and its bios)? There was a lot of irq >>>> routing work there, maybe not all of it made it into qemu.git. >>> >>> Yeah, qemu-kvm works just fine. The amount of irq routing trouble I see >>> with virtio and upstream qemu is getting really annoying :P >> >> Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in >> the BIOS? >> > > I think so, but not 100% sure. Diffing acpi-dsdt.dsl gives a number of irq related differences which look like we wanna have them in upstream qemu. Complete diff attached. cheers, Gerd [-- Attachment #2: fix --] [-- Type: text/plain, Size: 7729 bytes --] --- ./acpi-dsdt.dsl 2009-08-13 13:43:04.000000000 +0200 +++ /home/kraxel/tmp/kvm/kvm/bios/acpi-dsdt.dsl 2009-08-12 12:12:22.000000000 +0200 @@ -47,6 +47,7 @@ DefinitionBlock ( section 6.2.8.1 */ /* Note: we provide the same info as the PCI routing table of the Bochs BIOS */ + #define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \ Package() { nr##ffff, 0, lnk0, 0 }, \ Package() { nr##ffff, 1, lnk1, 0 }, \ @@ -57,6 +58,7 @@ DefinitionBlock ( #define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD) #define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA) #define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB) + prt_slot0(0x0000), prt_slot1(0x0001), prt_slot2(0x0002), @@ -441,8 +443,8 @@ DefinitionBlock ( Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link Name(_UID, 1) Name(_PRS, ResourceTemplate(){ - IRQ (Level, ActiveLow, Shared) - {3,4,5,6,7,9,10,11,12} + Interrupt (, Level, ActiveHigh, Shared) + { 5, 10, 11 } }) Method (_STA, 0, NotSerialized) { @@ -461,14 +463,14 @@ DefinitionBlock ( { Name (PRR0, ResourceTemplate () { - IRQ (Level, ActiveLow, Shared) + Interrupt (, Level, ActiveHigh, Shared) {1} }) - CreateWordField (PRR0, 0x01, TMP) + CreateDWordField (PRR0, 0x05, TMP) Store (PRQ0, Local0) If (LLess (Local0, 0x80)) { - ShiftLeft (One, Local0, TMP) + Store (Local0, TMP) } Else { @@ -478,18 +480,16 @@ DefinitionBlock ( } Method (_SRS, 1, NotSerialized) { - CreateWordField (Arg0, 0x01, TMP) - FindSetRightBit (TMP, Local0) - Decrement (Local0) - Store (Local0, PRQ0) + CreateDWordField (Arg0, 0x05, TMP) + Store (TMP, PRQ0) } } Device(LNKB){ Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link Name(_UID, 2) Name(_PRS, ResourceTemplate(){ - IRQ (Level, ActiveLow, Shared) - {3,4,5,6,7,9,10,11,12} + Interrupt (, Level, ActiveHigh, Shared) + { 5, 10, 11 } }) Method (_STA, 0, NotSerialized) { @@ -508,14 +508,14 @@ DefinitionBlock ( { Name (PRR0, ResourceTemplate () { - IRQ (Level, ActiveLow, Shared) + Interrupt (, Level, ActiveHigh, Shared) {1} }) - CreateWordField (PRR0, 0x01, TMP) + CreateDWordField (PRR0, 0x05, TMP) Store (PRQ1, Local0) If (LLess (Local0, 0x80)) { - ShiftLeft (One, Local0, TMP) + Store (Local0, TMP) } Else { @@ -525,18 +525,16 @@ DefinitionBlock ( } Method (_SRS, 1, NotSerialized) { - CreateWordField (Arg0, 0x01, TMP) - FindSetRightBit (TMP, Local0) - Decrement (Local0) - Store (Local0, PRQ1) + CreateDWordField (Arg0, 0x05, TMP) + Store (TMP, PRQ1) } } Device(LNKC){ Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link Name(_UID, 3) Name(_PRS, ResourceTemplate(){ - IRQ (Level, ActiveLow, Shared) - {3,4,5,6,7,9,10,11,12} + Interrupt (, Level, ActiveHigh, Shared) + { 5, 10, 11 } }) Method (_STA, 0, NotSerialized) { @@ -555,14 +553,14 @@ DefinitionBlock ( { Name (PRR0, ResourceTemplate () { - IRQ (Level, ActiveLow, Shared) + Interrupt (, Level, ActiveHigh, Shared) {1} }) - CreateWordField (PRR0, 0x01, TMP) + CreateDWordField (PRR0, 0x05, TMP) Store (PRQ2, Local0) If (LLess (Local0, 0x80)) { - ShiftLeft (One, Local0, TMP) + Store (Local0, TMP) } Else { @@ -572,18 +570,16 @@ DefinitionBlock ( } Method (_SRS, 1, NotSerialized) { - CreateWordField (Arg0, 0x01, TMP) - FindSetRightBit (TMP, Local0) - Decrement (Local0) - Store (Local0, PRQ2) + CreateDWordField (Arg0, 0x05, TMP) + Store (TMP, PRQ2) } } Device(LNKD){ Name(_HID, EISAID("PNP0C0F")) // PCI interrupt link Name(_UID, 4) Name(_PRS, ResourceTemplate(){ - IRQ (Level, ActiveLow, Shared) - {3,4,5,6,7,9,10,11,12} + Interrupt (, Level, ActiveHigh, Shared) + { 5, 10, 11 } }) Method (_STA, 0, NotSerialized) { @@ -602,14 +598,14 @@ DefinitionBlock ( { Name (PRR0, ResourceTemplate () { - IRQ (Level, ActiveLow, Shared) + Interrupt (, Level, ActiveHigh, Shared) {1} }) - CreateWordField (PRR0, 0x01, TMP) + CreateDWordField (PRR0, 0x05, TMP) Store (PRQ3, Local0) If (LLess (Local0, 0x80)) { - ShiftLeft (One, Local0, TMP) + Store (Local0, TMP) } Else { @@ -619,10 +615,8 @@ DefinitionBlock ( } Method (_SRS, 1, NotSerialized) { - CreateWordField (Arg0, 0x01, TMP) - FindSetRightBit (TMP, Local0) - Decrement (Local0) - Store (Local0, PRQ3) + CreateDWordField (Arg0, 0x05, TMP) + Store (TMP, PRQ3) } } } @@ -703,11 +697,13 @@ DefinitionBlock ( gen_pci_hotplug(31) Return (0x01) - - } - Method(_L02) { - Return(0x01) } + + /* + * Method _02 will be provided by the SSDT as it needs to call + * into the Processor methods (_PR.PRSC()). + */ + Method(_L03) { Return(0x01) } @@ -748,5 +744,4 @@ DefinitionBlock ( Return(0x01) } } - } ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-13 9:00 ` Avi Kivity 2009-08-13 12:07 ` Gerd Hoffmann @ 2009-08-13 12:47 ` Gerd Hoffmann 2009-08-13 13:15 ` Anthony Liguori 1 sibling, 1 reply; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-13 12:47 UTC (permalink / raw) To: Avi Kivity; +Cc: Christoph Hellwig, qemu-devel [-- Attachment #1: Type: text/plain, Size: 355 bytes --] On 08/13/09 11:00, Avi Kivity wrote: >> Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in >> the BIOS? > > I think so, but not 100% sure. Lets start with the attached fix. bochs build system doesn't compile the dsdt. Which implies that the patches in pc-bios/bios-pq/ which change the dsdt have no effect at all. cheers, Gerd [-- Attachment #2: 0002-actually-compile-dsdt.patch --] [-- Type: text/plain, Size: 777 bytes --] >From 6f50c206451bd8454ba0c1ec72728257946de65c Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann <kraxel@redhat.com> Date: Thu, 13 Aug 2009 14:33:11 +0200 Subject: [PATCH 2/2] actually compile dsdt --- bios/Makefile.in | 2 -- 1 files changed, 0 insertions(+), 2 deletions(-) diff --git a/bios/Makefile.in b/bios/Makefile.in index 28ada75..7d8a65a 100644 --- a/bios/Makefile.in +++ b/bios/Makefile.in @@ -103,13 +103,11 @@ rombios32.out: rombios32start.o rombios32.o rombios32.ld rombios32.o: rombios32.c acpi-dsdt.hex $(GCC32) -O2 -Wall -c -o $@ $< -ifeq ("1", "0") acpi-dsdt.hex: acpi-dsdt.dsl cpp -P $< $<.i iasl -tc -p $@ $<.i rm $<.i sed -i -e's/^unsigned/const unsigned/' $@ -endif rombios32start.o: rombios32start.S $(GCC32) -c -o $@ $< -- 1.6.2.5 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-13 12:47 ` Gerd Hoffmann @ 2009-08-13 13:15 ` Anthony Liguori 2009-08-13 13:38 ` Gerd Hoffmann 0 siblings, 1 reply; 21+ messages in thread From: Anthony Liguori @ 2009-08-13 13:15 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: qemu-devel, Avi Kivity, Christoph Hellwig Gerd Hoffmann wrote: > On 08/13/09 11:00, Avi Kivity wrote: >>> Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in >>> the BIOS? >> >> I think so, but not 100% sure. > > Lets start with the attached fix. bochs build system doesn't compile > the dsdt. Which implies that the patches in pc-bios/bios-pq/ which > change the dsdt have no effect at all. When I rebuild the bios locally, I manually change this in the generated Makefile. But I'm going to merge a git submodule for bochs bios today into the tree. The Makefile in that tree already has this bit removed. Regards, Anthony Liguori ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-13 13:15 ` Anthony Liguori @ 2009-08-13 13:38 ` Gerd Hoffmann 0 siblings, 0 replies; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-13 13:38 UTC (permalink / raw) To: Anthony Liguori; +Cc: qemu-devel, Avi Kivity, Christoph Hellwig On 08/13/09 15:15, Anthony Liguori wrote: > Gerd Hoffmann wrote: >> On 08/13/09 11:00, Avi Kivity wrote: >>>> Where were the irq routing trouble fixes in qemu-kvm? Was it fixes in >>>> the BIOS? >>> >>> I think so, but not 100% sure. >> >> Lets start with the attached fix. bochs build system doesn't compile >> the dsdt. Which implies that the patches in pc-bios/bios-pq/ which >> change the dsdt have no effect at all. > > When I rebuild the bios locally, I manually change this in the generated > Makefile. Hmm, strange. With the patch applied on top of the others I get a working bios when building according to the instructions in pc-bios/README. The prebuild bios.bin doesn't work for me though. cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 9:26 ` Gerd Hoffmann 2009-08-12 10:00 ` Avi Kivity @ 2009-08-12 10:08 ` Gerd Hoffmann 2009-08-12 21:54 ` Christoph Hellwig 1 sibling, 1 reply; 21+ messages in thread From: Gerd Hoffmann @ 2009-08-12 10:08 UTC (permalink / raw) To: Christoph Hellwig; +Cc: qemu-devel On 08/12/09 11:26, Gerd Hoffmann wrote: > On 08/11/09 21:28, Gerd Hoffmann wrote: >> Hmm. I suspect this is not related to qdev and virtio-blk at all. I've >> noticed now and then that some pci devices don't work if you have many >> of them. Didn't try (yet) to root-cause that one. > > More testing: Bare virtual box with just piix+vga. Then place a virtio > disk into different slots using addr=. 3,4,5 work fine. 6 gives me: > > ACPI: Unable to derive IRQ for device 0000:00:06.0 > ACPI: PCI Interrupt 0000:00:06.0[A]: no GSI - using IRQ 9 > vda: <hangs here> > > Looks like a irq routing issue ... With acpi=off the box boots just fine for me with the virtio disk in slot #6. Also note there is pc-bios/bios-pq/0007_bios-add-26-pci-slots,-bringing-the-total-to-32.patch which adds slots 6 .. 32 to the acpi tables. Maybe that one is incomplete? cheers, Gerd ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [Qemu-devel] virtio-blk/qdev failure in the current git tree 2009-08-12 10:08 ` Gerd Hoffmann @ 2009-08-12 21:54 ` Christoph Hellwig 0 siblings, 0 replies; 21+ messages in thread From: Christoph Hellwig @ 2009-08-12 21:54 UTC (permalink / raw) To: Gerd Hoffmann; +Cc: Christoph Hellwig, qemu-devel On Wed, Aug 12, 2009 at 12:08:53PM +0200, Gerd Hoffmann wrote: > With acpi=off the box boots just fine for me with the virtio disk in > slot #6. Yes, acpi=off fixes it for me too, and I also see the changes in the interrupt routing. ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2009-08-13 13:38 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-08-10 23:56 [Qemu-devel] virtio-blk/qdev failure in the current git tree Christoph Hellwig 2009-08-11 0:29 ` Anthony Liguori 2009-08-11 16:13 ` Christoph Hellwig 2009-08-11 16:36 ` Christoph Hellwig 2009-08-11 18:45 ` Anthony Liguori 2009-08-11 19:28 ` Gerd Hoffmann 2009-08-12 9:26 ` Gerd Hoffmann 2009-08-12 10:00 ` Avi Kivity 2009-08-12 10:19 ` Gerd Hoffmann 2009-08-12 10:40 ` Gerd Hoffmann 2009-08-12 10:51 ` Avi Kivity 2009-08-12 11:45 ` Reimar Döffinger 2009-08-12 21:50 ` Christoph Hellwig 2009-08-12 22:01 ` Anthony Liguori 2009-08-13 9:00 ` Avi Kivity 2009-08-13 12:07 ` Gerd Hoffmann 2009-08-13 12:47 ` Gerd Hoffmann 2009-08-13 13:15 ` Anthony Liguori 2009-08-13 13:38 ` Gerd Hoffmann 2009-08-12 10:08 ` Gerd Hoffmann 2009-08-12 21:54 ` Christoph Hellwig
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).