[PATCH v2 2/6] hrtimer: Optimize __hrtimer_start_range_ns()

Peter Zijlstra posted 6 patches 2 weeks, 4 days ago
[PATCH v2 2/6] hrtimer: Optimize __hrtimer_start_range_ns()
Posted by Peter Zijlstra 2 weeks, 4 days ago
Much like hrtimer_reprogram(), skip programming if the cpu_base is
running the hrtimer interrupt.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
---
 kernel/time/hrtimer.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -1261,6 +1261,14 @@ static int __hrtimer_start_range_ns(stru
 	}
 
 	first = enqueue_hrtimer(timer, new_base, mode);
+
+	/*
+	 * If the hrtimer interrupt is running, then it will reevaluate the
+	 * clock bases and reprogram the clock event device.
+	 */
+	if (new_base->cpu_base->in_hrtirq)
+		return 0;
+
 	if (!force_local) {
 		/*
 		 * If the current CPU base is online, then the timer is
Re: [PATCH v2 2/6] hrtimer: Optimize __hrtimer_start_range_ns()
Posted by Thomas Gleixner 6 days, 6 hours ago
On Wed, Jan 21 2026 at 17:20, Peter Zijlstra wrote:
> Much like hrtimer_reprogram(), skip programming if the cpu_base is
> running the hrtimer interrupt.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Reviewed-by: Thomas Gleixner <tglx@kernel.org>
Re: [PATCH v2 2/6] hrtimer: Optimize __hrtimer_start_range_ns()
Posted by Juri Lelli 2 weeks, 3 days ago
Hello,

On 21/01/26 17:20, Peter Zijlstra wrote:
> Much like hrtimer_reprogram(), skip programming if the cpu_base is
> running the hrtimer interrupt.
> 
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Reviewed-by: Juri Lelli <juri.lelli@redhat.com>

Thanks,
Juri