Loading kernel/time/hrtimer.c +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <linux/timer.h> #include <linux/freezer.h> #include <linux/compat.h> #include <linux/delay.h> #include <linux/uaccess.h> Loading Loading @@ -178,6 +179,7 @@ struct hrtimer_clock_base *lock_hrtimer_base(const struct hrtimer *timer, raw_spin_unlock_irqrestore(&base->cpu_base->lock, *flags); } cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } Loading Loading @@ -1182,6 +1184,7 @@ int hrtimer_cancel(struct hrtimer *timer) if (ret >= 0) return ret; cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } EXPORT_SYMBOL_GPL(hrtimer_cancel); Loading kernel/time/tick-internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -163,3 +163,4 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases); extern u64 get_next_timer_interrupt(unsigned long basej, u64 basem); void timer_clear_idle(void); #define TIMER_LOCK_TIGHT_LOOP_DELAY_NS 350 kernel/time/timer.c +2 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,7 @@ static struct timer_base *lock_timer_base(struct timer_list *timer, raw_spin_unlock_irqrestore(&base->lock, *flags); } cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } Loading Loading @@ -1310,6 +1311,7 @@ int del_timer_sync(struct timer_list *timer) if (ret >= 0) return ret; cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } EXPORT_SYMBOL(del_timer_sync); Loading Loading
kernel/time/hrtimer.c +3 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <linux/timer.h> #include <linux/freezer.h> #include <linux/compat.h> #include <linux/delay.h> #include <linux/uaccess.h> Loading Loading @@ -178,6 +179,7 @@ struct hrtimer_clock_base *lock_hrtimer_base(const struct hrtimer *timer, raw_spin_unlock_irqrestore(&base->cpu_base->lock, *flags); } cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } Loading Loading @@ -1182,6 +1184,7 @@ int hrtimer_cancel(struct hrtimer *timer) if (ret >= 0) return ret; cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } EXPORT_SYMBOL_GPL(hrtimer_cancel); Loading
kernel/time/tick-internal.h +1 −0 Original line number Diff line number Diff line Loading @@ -163,3 +163,4 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases); extern u64 get_next_timer_interrupt(unsigned long basej, u64 basem); void timer_clear_idle(void); #define TIMER_LOCK_TIGHT_LOOP_DELAY_NS 350
kernel/time/timer.c +2 −0 Original line number Diff line number Diff line Loading @@ -957,6 +957,7 @@ static struct timer_base *lock_timer_base(struct timer_list *timer, raw_spin_unlock_irqrestore(&base->lock, *flags); } cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } Loading Loading @@ -1310,6 +1311,7 @@ int del_timer_sync(struct timer_list *timer) if (ret >= 0) return ret; cpu_relax(); ndelay(TIMER_LOCK_TIGHT_LOOP_DELAY_NS); } } EXPORT_SYMBOL(del_timer_sync); Loading