Subject: Re: ioapic: adaption required?
To: Christoph Egger <Christoph_Egger@gmx.de>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-xen
Date: 10/08/2007 12:12:19
On Mon, Oct 08, 2007 at 11:45:42AM +0200, Christoph Egger wrote:
> 
> Hi!
> 
> With the recent ioapic and acpi changes in -current, my dom0
> boot output changed:
> 
> ioapic0 at mainbus0 apid 2
> ioapic0: pa 0xfec00000, virtual wire mode, version 3, 24 pins
> (XEN) io_apic.c:2132: 
> (XEN) ioapic_guest_write: apic=0, pin=2, old_irq=0, new_irq=-1
> (XEN) ioapic_guest_write: old_entry=000009f0, new_entry=00010900
> (XEN) ioapic_guest_write: Attempt to remove IO-APIC pin of in-use IRQ!
> (XEN) io_apic.c:2132: 
> (XEN) ioapic_guest_write: apic=0, pin=4, old_irq=4, new_irq=-1
> (XEN) ioapic_guest_write: old_entry=000009f1, new_entry=00010900
> (XEN) ioapic_guest_write: Attempt to remove IO-APIC pin of in-use IRQ!
> (XEN) io_apic.c:2163: 
> (XEN) ioapic_guest_write: apic=0, pin=16, old_irq=-1, new_irq=-1
> (XEN) ioapic_guest_write: old_entry=00010000, new_entry=0000a900
> (XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
> [...]
> The lost interrupt problems are new.
> 
> Looks like Dom0 needs to be changed to use the
> PHYSDEVOP_apic_read, PHYSDEVOP_apic_write
> hypercalls instead of the deprecated set of
> PHYSDEVOP_IRQ_UNMASK_NOTIFY
> and PHYSDEVOP_IRQ_STATUS_QUERY.

AFAIK, PHYSDEVOP_apic_read/write are already used, see xen/include/i82093var.h
Or maybe you mean to use APIC operations to query/ack the interrupts instead
of these hypercalls ?

Anyway, it looks like the new ACPI code makes changes to the configuration
that Xen considers bogus or invalid; or maybe just changing routing for
interrupts that already have an handler installed. I'm not sure getting rid
of PHYSDEVOP_IRQ_* would fix it ...

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
     NetBSD: 26 ans d'experience feront toujours la difference
--