linux/arch/mips/loongson64
Xi Ruoyao dceafc1803 MIPS: loongson64: add IRQ work based on self-IPI
Since the commit 91840be8f7 ("irq_work: Fix use-after-free in
irq_work_single() on PREEMPT_RT"), we observed the performance of
execve() is significantly impacted on MIPS.

While we are unsure how that commit caused the impact or how to improve
it (or even if it can be improved at all), implementing IRQ work with
self-IPI seems able to mitigate the impaction.

Perhaps this can/should be implemented for other MIPS architecture
processors as well, but we don't have the enough knowledge of them, nor
access to the hardware.  So only implement it for loongson64 here.

Link: https://lore.kernel.org/6be1cdd5f91dd7418a32ff372a6f3ae259b19195.camel@xry111.site/
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2026-06-29 11:36:36 +02:00
..
boardinfo.c MIPS: Loongson64: Replace deprecated strcpy() with strscpy_pad() 2025-08-29 22:34:30 +02:00
cop2-ex.c MIPS: Loongson-3: Fix fp register access if MSA enabled 2020-09-22 13:07:22 +02:00
cpucfg-emul.c MIPS: Unify naming style of vendor CP0.Config6 bits 2020-07-08 11:15:53 +02:00
dma.c MIPS: Loongson64: Include bootinfo.h in dma.c 2024-06-11 13:04:11 +02:00
env.c MIPS: Loongson64: env: Check UARTs passed by LEFI cautiously 2026-04-01 21:49:44 +02:00
hpet.c MIPS: Replace setup_irq() by request_irq() 2020-03-05 16:47:35 +01:00
init.c MIPS: loongson64: Override arch_dynirq_lower_bound to reserve LPC IRQs 2026-03-26 16:15:02 +01:00
Kconfig MIPS: Loongson64: Mark RS780 HPET as broken 2020-04-20 19:37:01 +02:00
Makefile MIPS: Loongson64: Implement PM suspend for LEFI firmware 2024-06-11 13:03:50 +02:00
numa.c mips: drop paging_init() 2026-01-26 20:02:19 -08:00
Platform MIPS: Loongson: Move arch cflags to MIPS top level Makefile 2023-04-05 09:45:09 +02:00
pm.c MIPS: Loongson64: Implement PM suspend for LEFI firmware 2024-06-11 13:03:50 +02:00
reset.c MIPS: Loongson64: reset: Prioritise firmware service 2024-06-21 10:22:10 +02:00
setup.c MIPS/Loongson: Fix build warnings about export.h 2025-07-02 13:31:43 +02:00
sleeper.S MIPS: Loongson64: sleeper: Pass ra and sp as arguments 2024-06-21 10:22:10 +02:00
smp.c MIPS: loongson64: add IRQ work based on self-IPI 2026-06-29 11:36:36 +02:00
smp.h MIPS: Loongson64: Move files to the top-level directory 2019-11-01 14:31:28 -07:00
time.c MIPS: Loongson64: Add support for the Loongson-2K1000 to get cpu_clock_freq 2021-03-25 10:44:01 +01:00
vbios_quirk.c PCI/sysfs: Find shadow ROM before static attribute initialization 2022-01-26 10:41:21 -06:00