Patchwork virtio-blk/qdev failure in the current git tree

login
register
mail settings
Submitter Gerd Hoffmann
Date Aug. 12, 2009, 10:40 a.m.
Message ID <4A829C0B.3070705@redhat.com>
Download mbox | patch
Permalink /patch/31181/
State Superseded
Headers show

Comments

Gerd Hoffmann - Aug. 12, 2009, 10:40 a.m.
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:
Avi Kivity - Aug. 12, 2009, 10:51 a.m.
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.
Reimar Döffinger - Aug. 12, 2009, 11:45 a.m.
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 ;-) )...

Patch

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