Commit cbaeb4f
genirq: Use a maple tree for interrupt descriptor management
BugLink: https://bugs.launchpad.net/bugs/2024857
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 <sdonthineni@nvidia.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230519134902.1495562-4-sdonthineni@nvidia.com
Reviewed-by: Shanker Donthineni <sdonthineni@nvidia.com>
Acked-by: Shanker Donthineni <sdonthineni@nvidia.com>
(cherry picked from commit 721255b linux-next)
Acked-by: Jamie Nguyen <jamien@nvidia.com>
Acked-by: Brad Figg <bfigg@nvidia.com>
Acked-by: Ian May <ian.may@canonical.com>
Acked-by: Jacob Martin <jacob.martin@canonical.com>
Signed-off-by: Brad Figg <bfigg@nvidia.com>1 parent 34f0b67 commit cbaeb4f
2 files changed
Lines changed: 33 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
16 | | - | |
| 15 | + | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| |||
131 | 130 | | |
132 | 131 | | |
133 | 132 | | |
134 | | - | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
135 | 138 | | |
136 | 139 | | |
137 | 140 | | |
138 | | - | |
139 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
140 | 146 | | |
141 | 147 | | |
142 | 148 | | |
143 | 149 | | |
144 | | - | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
145 | 166 | | |
146 | 167 | | |
147 | 168 | | |
| |||
355 | 376 | | |
356 | 377 | | |
357 | 378 | | |
358 | | - | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
363 | | - | |
364 | | - | |
365 | 379 | | |
366 | 380 | | |
367 | | - | |
| 381 | + | |
368 | 382 | | |
369 | 383 | | |
370 | 384 | | |
371 | 385 | | |
372 | 386 | | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | 387 | | |
379 | 388 | | |
380 | 389 | | |
| |||
517 | 526 | | |
518 | 527 | | |
519 | 528 | | |
520 | | - | |
521 | 529 | | |
522 | 530 | | |
523 | 531 | | |
| |||
557 | 565 | | |
558 | 566 | | |
559 | 567 | | |
560 | | - | |
561 | 568 | | |
562 | 569 | | |
563 | 570 | | |
| |||
612 | 619 | | |
613 | 620 | | |
614 | 621 | | |
| 622 | + | |
615 | 623 | | |
616 | 624 | | |
617 | 625 | | |
| |||
624 | 632 | | |
625 | 633 | | |
626 | 634 | | |
| 635 | + | |
627 | 636 | | |
628 | | - | |
629 | 637 | | |
630 | 638 | | |
631 | 639 | | |
| |||
637 | 645 | | |
638 | 646 | | |
639 | 647 | | |
640 | | - | |
| 648 | + | |
641 | 649 | | |
642 | 650 | | |
643 | 651 | | |
| |||
781 | 789 | | |
782 | 790 | | |
783 | 791 | | |
784 | | - | |
785 | 792 | | |
786 | 793 | | |
787 | 794 | | |
| |||
844 | 851 | | |
845 | 852 | | |
846 | 853 | | |
847 | | - | |
| 854 | + | |
848 | 855 | | |
849 | 856 | | |
850 | 857 | | |
| |||
0 commit comments