All of lore.kernel.org
 help / color / mirror / Atom feed
* [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  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: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 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

* 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

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 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.