[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: xen interrupt system
On Mon, Aug 24, 2009 at 11:35:04AM +0200, Christoph Egger wrote:
> > what is "gsi" ?
> GSI is short for "Global System Interrupt".
> This is needed to form a unique identifier to deal with multiple ioapics.
> xen boot message from a machine with three ioapics each with 16 pins.
> (XEN) IOAPIC: apic_id 8, version 17, address 0xfec00000, GSI 0-15
> (XEN) IOAPIC: apic_id 9, version 17, address 0xfec01000, GSI 16-31
> (XEN) IOAPIC: apic_id 10, version 17, address 0xfec02000, GSI 32-47
This is a pure software construct, isn't it ?
If we want to use the same numbers as Xen, we need to know in which order
Xen probed the ioapics; I'm not sure we can easily get this information.
> > > Xen also thinks of gsi
> > > as irq number, but Xen thinks gsi is contiguous in system and doesn't
> > > support sparse gsi before #Cset20076.
> > >
> > > XenSource & Intel want to know the means of 'irq number' in NetBSD.
> > Nothing. It's an arbitrary number allocated top-down starting at 200
> > (choosen empirically after trial and error to see what range the hypervisor
> > would accept), it exists only because PHYSDEVOP_ASSIGN_VECTOR wants one.
> > What NetBSD cares about is the tuple (ioapic, pin number, vector)
> > > XenSource also states:
> > >
> > > "Firstly, make the irq input to PHYSDEVOP_alloc_irq_vector a different
> > > namespace to the GSI space.
> > How do we know the "GSI space" ?
> From the MADT ACPI table, IO Apic structure byte offset 8.
And if we don't use ACPI ? I have systems where it's not useable.
I guess we have something similar in the MPBIOS ?
I think we have the GSI in pic_vecbase in NetBSD, but I suspect it's
set to -1 when using MPBIOS (from reading the sources).
Now back to the original question, what does PHYSDEVOP_ASSIGN_VECTOR
expects as input ?
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
Main Index |
Thread Index |