Sorry to spam again but I couldn't figure out this on my own. Questions:
You again replied to an unrelated message instead of starting a new thread too, sigh.
- Does LinuxBIOS actually program the HT interrupt definition
registers based on the interrupt capability and mobo config, or does Linux do this? Or is it up to the driver?
LinuxBIOS has to do at least some of the configuration. It probably does it all, I didn't check. Linux will at runtime change some settings. Unrelated device drivers do not touch any of this.
- What's the recommended way of doing HT interrupt that will work
with both APIC and 8259? EOI seems to be APIC only (can be turned off in the interrupt request) and I guess I can't rely on EOI to always be there?
I have no idea what your question is. You *have* to do EOI on level triggered interrupts and you *have* to refrain from using it on edge triggered interrupts, or things will go (horribly and/or subtly) wrong.
- EOI in a way acts as flow control. So without EOI is it possible
that I can flood the PIC/APIC with too many interrupt packets?
No, only one interrupt packet is sent from the HT APIC over the HT bus; and only one packet (the EOI packet) is sent back.
I suppose the credit based flow control in HT can take care of this...
That doesn't prevent flooding, it just prevents losing packets.
Segher