Port-amd64 archive

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

number of interrupt sources limit



Hello,
actually, the number of interrupt sources per CPU (but all peripheral
interrupts are routed to the BSP) is limited to 32. Is this considered
enough for modern x86 ?

It's definitively not enough for Xen (either dom0 or domU), which is
why Xen uses a different vector/spl implementation. As I'm working
on PV drivers for HVM guests it's time to revisit this.
I have two options:
a)  do not touch the x86 native spl implementation, and use a special
    vector for handling Xen events. The event vector will add
    bits to the ci_ipending mask so that it's called again on spllower.
    x86 bare metal is untouched but Xen will be less efficient.

b)  expand ci_ipending to a two-level bitmask, which would give us
    1024 (32*32) interrupt source. This would allow to share
    more code with xen, at the expense of a few more instructions in
    spllower() and in interrupt path on bare metal, and some more
    32bit words in cpu_info.

Any red herring with one or the other solution before I start coding ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index