diff options
| author | Matt Turner <mattst88@gmail.com> | 2026-09-05 15:29:43 -0400 |
|---|---|---|
| committer | Magnus Lindholm <linmag7@gmail.com> | 2026-10-18 00:44:42 +0200 |
| commit | 0d4c9dd06c36484af44cea502813b4939788708d (patch) | |
| tree | b091ae8a52f0bf2ecaa209eae2d4431ebc46d8c9 /tools/perf/scripts/python/stackcollapse.py | |
| parent | 04e57b9e71669e6e5f2a85d511a55fec41ca5c48 (diff) | |
| download | linux-0d4c9dd06c36484af44cea502813b4939788708d.tar.gz linux-0d4c9dd06c36484af44cea502813b4939788708d.zip | |
alpha: select SPARSE_IRQ
NR_IRQS on Alpha is sized for the largest configuration each platform
supports, and for Marvel that is 32 PIDs, or 32784 interrupts. Without
SPARSE_IRQ that becomes a static irq_desc[] array of 12.6 MB in .data,
carried by every Marvel and every generic kernel regardless of how many
interrupts the machine actually has. A real ES47 uses 87 of them.
That is not just wasted memory, it constrains where the kernel can be
loaded. The image links at a fixed 0xfffffc0001010000, just above the
console's low memory reservation, and with memory striping enabled the
console leaves only about 16 MB of usable low memory before the rest is
relocated to an interleaved aperture. A 12.6 MB array of mostly unused
interrupt descriptors is the difference between fitting and not.
Alpha already goes through irq_to_desc() rather than indexing irq_desc[]
directly, so nothing stands in the way. The platforms do wire up their
interrupts by number, though, which needs the descriptors to exist by
then, so provide arch_probe_nr_irqs() returning the machine vector's
count instead of taking the NR_IRQS_LEGACY default. Without it every
interrupt above 15 would have no descriptor and the handler setup would
be silently dropped.
Tested on an ES47 (Marvel, 2 EV7z): boots with all device interrupts
working, and .data drops by 12.6 MB, from 15.7 MB to 3.1 MB.
Signed-off-by: Matt Turner <mattst88@gmail.com>
Tested-by: Magnus Lindholm <linmag7@gmail.com>
Reviewed-by: Magnus Lindholm <linmag7@gmail.com>
Link: https://lore.kernel.org/r/20260905-arch-kconfig-options-v2-v2-22-83e8245761a2@gmail.com
Signed-off-by: Magnus Lindholm <linmag7@gmail.com>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
