diff options
Diffstat (limited to 'debian/patches-rt/0020-genirq-Disable-irqfixup-poll-on-PREEMPT_RT.patch')
-rw-r--r-- | debian/patches-rt/0020-genirq-Disable-irqfixup-poll-on-PREEMPT_RT.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/debian/patches-rt/0020-genirq-Disable-irqfixup-poll-on-PREEMPT_RT.patch b/debian/patches-rt/0020-genirq-Disable-irqfixup-poll-on-PREEMPT_RT.patch new file mode 100644 index 000000000..01560136e --- /dev/null +++ b/debian/patches-rt/0020-genirq-Disable-irqfixup-poll-on-PREEMPT_RT.patch @@ -0,0 +1,55 @@ +From f60bdcc6a930c598d2eb93528aa0dc4af348b5ad Mon Sep 17 00:00:00 2001 +From: Ingo Molnar <mingo@kernel.org> +Date: Fri, 3 Jul 2009 08:29:57 -0500 +Subject: [PATCH 020/158] genirq: Disable irqfixup/poll on PREEMPT_RT. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.15/older/patches-5.15.10-rt24.tar.xz + +The support for misrouted IRQs is used on old / legacy systems and is +not feasible on PREEMPT_RT. + +Polling for interrupts reduces the overall system performance. +Additionally the interrupt latency depends on the polling frequency and +delays are not desired for real time workloads. + +Disable IRQ polling on PREEMPT_RT and let the user know that it is not +enabled. The compiler will optimize the real fixup/poll code out. + +[ bigeasy: Update changelog and switch to IS_ENABLED() ] + +Signed-off-by: Ingo Molnar <mingo@kernel.org> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +Link: https://lore.kernel.org/r/20210917223841.c6j6jcaffojrnot3@linutronix.de +--- + kernel/irq/spurious.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c +index c481d8458325..02b2daf07441 100644 +--- a/kernel/irq/spurious.c ++++ b/kernel/irq/spurious.c +@@ -447,6 +447,10 @@ MODULE_PARM_DESC(noirqdebug, "Disable irq lockup detection when true"); + + static int __init irqfixup_setup(char *str) + { ++ if (IS_ENABLED(CONFIG_PREEMPT_RT)) { ++ pr_warn("irqfixup boot option not supported with PREEMPT_RT\n"); ++ return 1; ++ } + irqfixup = 1; + printk(KERN_WARNING "Misrouted IRQ fixup support enabled.\n"); + printk(KERN_WARNING "This may impact system performance.\n"); +@@ -459,6 +463,10 @@ module_param(irqfixup, int, 0644); + + static int __init irqpoll_setup(char *str) + { ++ if (IS_ENABLED(CONFIG_PREEMPT_RT)) { ++ pr_warn("irqpoll boot option not supported with PREEMPT_RT\n"); ++ return 1; ++ } + irqfixup = 2; + printk(KERN_WARNING "Misrouted IRQ fixup and polling support " + "enabled\n"); +-- +2.33.1 + |