Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xen interrupt system

On Thursday 20 August 2009 15:01:14 Manuel Bouyer wrote:
> On Thu, Aug 20, 2009 at 02:40:45PM +0200, Christoph Egger wrote:
> > > I think the best way to handle this is to use a software interrupt (or
> > > maybe two if we need something else than IPL_VM interrupts). The impact
> > > to the x86 code would be minimal. The Xen interrupt handler would just
> > > trigger the software interrupt , this would be very minimal code.
> > >
> > > We would then have 3 interrupts systems: the x86 interrupt system,
> > > the Xen full-PV interrupt system and the Xen interrupt system for
> > > PV drivers in x86.
> >
> > I know it is a lot of work. That's why noone has taken this TODO item.
> > And doing it doesn't give us the said features automatically but is a
> > major step forward in getting them.
> At first glance I think rototilling the current interrupt system isn't even
> a step in this direction (or if it is, a very small one) because the 2
> systems will be different anyway.
> > > > - improve ioapic handling (I get below Xen messages during boot)
> > >
> > > This is the real issue for recent Xen, because they changed the way
> > > ioapics are handled. We need to understand how it was changed.
> >
> > These are the relevant diffs:
> > http://xenbits.xensource.com/staging/xen-unstable.hg/rev/722c7e94e764
> > http://xenbits.xensource.com/staging/xen-unstable.hg/rev/d33e9aae74c6
> >
> > > I'd say that, at first glance, disabling the ioapic at attach time
> > > using vector 0 doens't work any more. This is probably requiring a
> > > minor rework of x86/x86/ioapic.c
> >
> > Why are we doing this in first place ?
> > Disabling ioapics doesn't really sound to be right.
> Because we don't know the state of the system. So we first
> disable all interrupt pins, and then reenable the ones we use.
> Maybe this could be skipped in the Xen case. It's probably worth a try.

I tried but this alone had no effect.

During boot, I also have this in serial output:

(XEN) io_apic.c:2292: 
(XEN) ioapic_guest_write: apic=0, pin=9, old_irq=-1, new_irq=95
(XEN) ioapic_guest_write: old_entry=00000958, new_entry=0000a95f
(XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
ioapic0: int9 
svwsata0: ServerWorks HT-1000 SATA Controller (rev. 0x00)
linkdev LNKS returned ACPI global irq 7, line 7
(XEN) io_apic.c:2292: 
(XEN) ioapic_guest_write: apic=0, pin=7, old_irq=-1, new_irq=94
(XEN) ioapic_guest_write: old_entry=00000948, new_entry=0000a95e
(XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
ioapic0: int7 
svwsata0: using ioapic0 pin 7, event channel 7 for native-PCI interrupt
linkdev LNKU returned ACPI global irq 10, line 10
(XEN) io_apic.c:2292: 
(XEN) ioapic_guest_write: apic=0, pin=10, old_irq=-1, new_irq=93
(XEN) ioapic_guest_write: old_entry=00000960, new_entry=0000a95d
(XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
ioapic0: int10 
ohci0: interrupting at ioapic0 pin 10, event channel 10
mpt0 at pci6 dev 0 function 0: Symbios Logic SAS1064E
(XEN) io_apic.c:2292: 
(XEN) ioapic_guest_write: apic=2, pin=3, old_irq=-1, new_irq=92
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0000a95c
(XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
ioapic2: int3 
mpt0: interrupting at ioapic2 pin 3, event channel 11
bge0 at pci8 dev 4 function 0: Broadcom BCM5714/5715 Gigabit Ethernet
(XEN) io_apic.c:2292: 
(XEN) ioapic_guest_write: apic=2, pin=4, old_irq=-1, new_irq=91
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0000a95b
(XEN) ioapic_guest_write: Installing bogus unmasked IO-APIC entry!
ioapic2: int4 
bge0: interrupting at ioapic2 pin 4, event channel 12

Home | Main Index | Thread Index | Old Index