--- x/kernel/time/hrtimer.c	2022-07-31 15:07:43.454730700 +0800
+++ y/kernel/time/hrtimer.c	2022-07-31 15:13:22.992407100 +0800
@@ -1480,6 +1480,7 @@ static void __run_hrtimer(struct hrtimer
 {
 	enum hrtimer_restart (*fn)(struct hrtimer *);
 	bool expires_in_hardirq;
+	unsigned long ts;
 	int restart;
 
 	lockdep_assert_held(&cpu_base->lock);
@@ -1515,9 +1516,12 @@ static void __run_hrtimer(struct hrtimer
 	raw_spin_unlock_irqrestore(&cpu_base->lock, flags);
 	trace_hrtimer_expire_entry(timer, now);
 	expires_in_hardirq = lockdep_hrtimer_enter(timer);
+	ts = jiffies + 4;
 
 	restart = fn(timer);
 
+	WARN_ONCE(time_after(jiffies, ts),
+		"On CPU%u hrtimer %ps took more than 4 ticks\n", cpu_base->cpu, fn);
 	lockdep_hrtimer_exit(expires_in_hardirq);
 	trace_hrtimer_expire_exit(timer);
 	raw_spin_lock_irq(&cpu_base->lock);