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 12:46:24 Manuel Bouyer wrote:
> On Thu, Aug 20, 2009 at 12:44:10PM +0200, Christoph Egger wrote:
> > Hi!
> >
> > We all know, NetBSD/Xen's interrupt system needs to be reworked
> > to meet the demands for future features such as SMP, PV drivers in HVM.
> >
> > In Xen development tree the interrupt system has been reworked which
> > breaks NetBSD/Xen Dom0 boot. No, the hypercalls did not change but
> > everything underneath. The new interrupt system in Xen enlights
> > the drawbacks of NetBSD/Xen's interrupt system in interrupt lossages,
> > timeouts and even in sudden freezes before Dom0 has the chance
> > to start the init process.
> >
> > The situation is serious: Unless we rework the interrupt system,
> > Xen 3.3 and Xen 3.4 are the lastest Xen versions NetBSD will work with.
>
> Do you know exactly what needs to be changed ?

Not on source but on design level.

- SMP-safety for the SMP feature
- must be able to coexist with any native interrupt system (PV drivers for HVM 
guests)
- improve ioapic handling (I get below Xen messages during boot)


(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=0, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=1, old_irq=1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000928, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=2, old_irq=0, new_irq=0
(XEN) ioapic_guest_write: old_entry=000009f0, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to modify IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=3, old_irq=3, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000930, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2259: 
(XEN) ioapic_guest_write: apic=0, pin=4, old_irq=4, new_irq=0
(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:2272: 
(XEN) ioapic_guest_write: apic=0, pin=5, old_irq=5, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000938, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=6, old_irq=6, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000940, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=7, old_irq=7, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000948, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=8, old_irq=8, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000950, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=9, old_irq=9, new_irq=0
(XEN) ioapic_guest_write: old_entry=0001a958, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=10, old_irq=10, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000960, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=11, old_irq=11, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000968, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=12, old_irq=12, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000970, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=13, old_irq=13, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000978, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=14, old_irq=14, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000988, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=15, old_irq=15, new_irq=0
(XEN) ioapic_guest_write: old_entry=00000990, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=16, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=17, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=18, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=19, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=20, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=21, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=22, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=0, pin=23, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
ioapic1 at mainbus0 apid 3, virtual wire mode
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=0, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=1, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=2, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=3, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=4, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=5, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=6, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=7, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=8, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=9, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=10, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=11, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=12, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=13, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=14, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=15, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=16, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=17, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=18, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=19, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=20, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=21, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=22, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!
(XEN) io_apic.c:2272: 
(XEN) ioapic_guest_write: apic=1, pin=23, old_irq=-1, new_irq=0
(XEN) ioapic_guest_write: old_entry=00010000, new_entry=0001a900
(XEN) ioapic_guest_write: Attempt to add IO-APIC pin for in-use IRQ!


Home | Main Index | Thread Index | Old Index