]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
hrtimer: Use __raise_softirq_irqoff() to raise the softirq
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Wed, 6 Nov 2024 14:51:37 +0000 (15:51 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 7 Nov 2024 01:44:38 +0000 (02:44 +0100)
Raising the hrtimer soft interrupt is always done from hard interrupt
context, so it can be reduced to just setting the HRTIMER soft interrupt
flag. The soft interrupt will be invoked on return from interrupt.

Use therefore __raise_softirq_irqoff() to raise the HRTIMER soft interrupt,
which is a trivial optimization.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Link: https://lore.kernel.org/all/20241106150419.2593080-2-bigeasy@linutronix.de
kernel/time/hrtimer.c

index cddcd08ea827f9d9b4f3dec52f94472035baf363..5402e0f242178b8592c914277e6e4b12e6b8010e 100644 (file)
@@ -1811,7 +1811,7 @@ retry:
        if (!ktime_before(now, cpu_base->softirq_expires_next)) {
                cpu_base->softirq_expires_next = KTIME_MAX;
                cpu_base->softirq_activated = 1;
-               raise_softirq_irqoff(HRTIMER_SOFTIRQ);
+               __raise_softirq_irqoff(HRTIMER_SOFTIRQ);
        }
 
        __hrtimer_run_queues(cpu_base, now, flags, HRTIMER_ACTIVE_HARD);
@@ -1906,7 +1906,7 @@ void hrtimer_run_queues(void)
        if (!ktime_before(now, cpu_base->softirq_expires_next)) {
                cpu_base->softirq_expires_next = KTIME_MAX;
                cpu_base->softirq_activated = 1;
-               raise_softirq_irqoff(HRTIMER_SOFTIRQ);
+               __raise_softirq_irqoff(HRTIMER_SOFTIRQ);
        }
 
        __hrtimer_run_queues(cpu_base, now, flags, HRTIMER_ACTIVE_HARD);