I've been thinking of ideas like this for multiple-priority interrupts,
a la RTLinux, although I would prefer to see it integrated into the
kernel. One idea I had was to set the APIC_LDR mask of cpu #0 to
0x03, cpu #1 to 0xc0, etc., and then set the destination mask for
higher priority interrupts to 0xff, and low priority interrupts to
0x55. Then to disable low priority interrupts, a cpu would set its
APIC_LDR mask to 0x02 (or 0x08). Unfortunately, I don't know if this
is legal and/or fast enough. I'm hoping you might shed some light.
Actually doing the coding and testing it has not been given a time
slice in several weeks.
I have, however, written a dual-priority patch for the i8259.
Originally, it touched the i8259 every time a 'cli()' was done,
which was butt-slow. Now, however, it touches the i8259 only
when it _really_, __really__ needs to (basically only when it
needs to avoid IRQ floods), which means that it touches the
i8259 even less than stock 2.3.42.
dave...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/