[PATCH 0/3] use runtime constant to optimize handle_arch_irq access
Jisheng Zhang
jszhang at kernel.org
Fri Feb 20 01:09:19 PST 2026
Currently, on GENERIC_IRQ_MULTI_HANDLER or arm64 platforms, the
handle_arch_irq is a pointer which is set during booting, and every
irq processing needs to access it, so it sits in hot code path. We can
use the runtime constant mechanism which was introduced by Linus to
speed up its accessing.
Tested on Sipeed Lichee Pi 4A (riscv64) board, the perf sched benchmark is
improved by ~5.8%
Tested on Quad CA55 platform, the perf sched benchmark is improved
by ~6.5%
As for the GENERIC_IRQ_MULTI_HANDLER platforms but without runtime const
support, such as arm, csky, loongarch, microblaze and openrisc, there
should be no changes.
Jisheng Zhang (3):
vmlinux.lds.h: add _handle_arch_irq RUNTIME_CONST section
genirq: use runtime constant to optimize handle_arch_irq access
arm64: use runtime constant to optimize handle_arch_irq access
arch/arm64/kernel/entry-common.c | 4 +++-
arch/arm64/kernel/irq.c | 9 ++++++---
include/asm-generic/vmlinux.lds.h | 3 ++-
include/linux/irq.h | 4 +++-
kernel/irq/handle.c | 8 +++++---
5 files changed, 19 insertions(+), 9 deletions(-)
--
2.51.0
More information about the linux-arm-kernel
mailing list