Decouple IRQ issues (MSI, i386, x86_64, ia64)
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest25 patches 24 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/25 | irq: Convert the move_irq flag from a 32bit word to a single bitinclude/ kernel/ | +6 | 0 replies | |
| 2/25 | irq: Add moved_masked_irqinclude/ kernel/ | +27 | 0 replies | |
| 3/25 | x86_64 irq: Reenable migrating irqs to other cpus.arch/ | +28 | 0 replies | |
| 4/25 | msi: Simplify msi enable and disable.drivers/ | +16 | 2 replies | |
| 5/25 | msi: Make the msi boolean tests return either 0 or 1.drivers/ | +2 | 1 reply | |
| 6/25 | msi: Implement helper functions read_msi_msg and write_msi_msg.drivers/ drivers/ include/ | +104 | 2 replies | |
| 7/25 | msi: Refactor the msi_ops.drivers/ drivers/ drivers/ +2 more | +116 | 1 reply | |
| 8/25 | msi: Simplify the msi irq limit policy.arch/ arch/ drivers/ +1 more | +8 | 3 replies | |
| 9/25 | irq: Add a dynamic irq creation APIinclude/ kernel/ | +64 | 6 replies | |
| 10/25 | ia64 irq: Dynamic irq supportarch/ | +23 | 0 replies | |
| 11/25 | i386 irq: Dynamic irq supportarch/ | +48 | 4 replies | |
| 12/25 | x86_64 irq: Dynamic irq supportarch/ | +48 | 0 replies | |
| 13/25 | msi: Make the msi code irq based and not vector based.drivers/ drivers/ | +168 | 0 replies | |
| 14/25 | x86_64 irq: Move msi message composition into io_apic.carch/ include/ include/ | +122 | 0 replies | |
| 15/25 | i386 irq: Move msi message composition into io_apic.carch/ include/ include/ | +119 | 0 replies | |
| 16/25 | msi: Only build msi-apic.c on ia64drivers/ | +2 | 0 replies | |
| 17/25 | x86_64 irq: Remove the msi assumption that irq == vectorarch/ include/ include/ +1 more | +45 | 0 replies | |
| 18/25 | i386 irq: Remove the msi assumption that irq == vectorarch/ arch/ arch/ +4 more | +47 | 0 replies | |
| 19/25 | irq: Remove msi hacksinclude/ | +0 | 0 replies | |
| 20/25 | irq: Generalize the check for HARDIRQ_BITS.include/ include/ | +9 | 0 replies | |
| 21/25 | x86_64 irq: Make the external irq handlers report their vector, not the irq number.arch/ arch/ arch/ +1 more | +32 | 0 replies | |
| 22/25 | x86_64 irq: make vector_irq per cpu.arch/ arch/ arch/ +2 more | +145 | 0 replies | |
| 23/25 | x86_64 irq: Kill gsi_irq_sharing.arch/ arch/ | +1 | 0 replies | |
| 24/25 | x86_64 irq: Kill irq compression.arch/ arch/ include/ | +1 | 0 replies | |
| 25/25 | irq: Document what an IRQ is.Documentation/ | +22 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/25] Decouple IRQ issues (MSI, i386, x86_64, ia64)
The following patchset is against 2.6.17-rc6-mm2.
It was the only easy place I could get everyones work who has been touching relevant code.
The primary aim of this patch is to remove maintenances problems caused by the irq infrastructure. The two big issues I address are an artificially small cap on the number of irqs, and that MSI assumes vector == irq. My primary focus is on x86_64 but I have touched other architectures where necessary to keep them from breaking.
- To increase the number of irqs I modify the code to look at the (cpu, vector) pair instead of just looking at the vector.
With a large number of irqs available systems with a large irq count no longer need to compress their irq numbers to fit. Removing a lot of brittle special cases.
For acpi guys the result is that irq == gsi.
- Addressing the fact that MSI assumes irq == vector takes a few more patches. But suffice it to say when I am done none of the generic irq code even knows what a vector is.
In quick testing on a large Unisys x86_64 machine we stumbled over at least one driver that assumed that NR_IRQS could always fit into an 8 bit number. This driver is clearly buggy today. But this has become a class of bugs that it is now much easier to hit.
I've done my best but if this patchset wasn't perfect it won't surprise me. But I'm pretty certain I have succeeded in decoupling any fixes should be small and well contained.
Eric