]> Git Repo - linux.git/commit
genirq: Use a maple tree for interrupt descriptor management
authorShanker Donthineni <[email protected]>
Fri, 19 May 2023 13:49:02 +0000 (08:49 -0500)
committerThomas Gleixner <[email protected]>
Wed, 24 May 2023 09:39:44 +0000 (11:39 +0200)
commit721255b9826bd11c7a38b585905fc2dd0fb94e52
tree2c266db0d16e3708c17e86e3adb6cc644a0d9e4b
parent5e630aa8d9fcd4c0cb6d5d09422009533aba979a
genirq: Use a maple tree for interrupt descriptor management

The current implementation uses a static bitmap for interrupt descriptor
allocation and a radix tree to pointer store the pointer for lookup.

However, the size of the bitmap is constrained by the build time macro
MAX_SPARSE_IRQS, which may not be sufficient to support high-end servers,
particularly those with GICv4.1 hardware, which require a large interrupt
space to cover LPIs and vSGIs.

Replace the bitmap and the radix tree with a maple tree, which not only
stores pointers for lookup, but also provides a mechanism to find free
ranges. That removes the build time hardcoded upper limit.

Signed-off-by: Shanker Donthineni <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
kernel/irq/internals.h
kernel/irq/irqdesc.c
This page took 0.052556 seconds and 4 git commands to generate.