Loading kernel/time/hrtimer.c +7 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <linux/timer.h> #include <linux/freezer.h> #include <linux/compat.h> #include <linux/delay.h> #include <linux/uaccess.h> Loading Loading @@ -1629,6 +1630,12 @@ static void migrate_hrtimer_list(struct hrtimer_cpu_base *old_base, raw_spin_unlock(&old_base->lock); raw_spin_unlock(&new_base->lock); cpu_relax(); /* * cpu_relax may just be a barrier. Grant the * run_hrtimer_list code some time to obtain * the spinlock. */ udelay(1); raw_spin_lock(&new_base->lock); raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); Loading kernel/time/timer.c +2 −1 Original line number Diff line number Diff line Loading @@ -1867,6 +1867,7 @@ static void __migrate_timers(unsigned int cpu, bool remove_pinned) raw_spin_lock_irqsave(&new_base->lock, flags); raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); if (!cpu_online(cpu)) BUG_ON(old_base->running_timer); for (i = 0; i < WHEEL_SIZE; i++) Loading Loading
kernel/time/hrtimer.c +7 −0 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <linux/timer.h> #include <linux/freezer.h> #include <linux/compat.h> #include <linux/delay.h> #include <linux/uaccess.h> Loading Loading @@ -1629,6 +1630,12 @@ static void migrate_hrtimer_list(struct hrtimer_cpu_base *old_base, raw_spin_unlock(&old_base->lock); raw_spin_unlock(&new_base->lock); cpu_relax(); /* * cpu_relax may just be a barrier. Grant the * run_hrtimer_list code some time to obtain * the spinlock. */ udelay(1); raw_spin_lock(&new_base->lock); raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); Loading
kernel/time/timer.c +2 −1 Original line number Diff line number Diff line Loading @@ -1867,6 +1867,7 @@ static void __migrate_timers(unsigned int cpu, bool remove_pinned) raw_spin_lock_irqsave(&new_base->lock, flags); raw_spin_lock_nested(&old_base->lock, SINGLE_DEPTH_NESTING); if (!cpu_online(cpu)) BUG_ON(old_base->running_timer); for (i = 0; i < WHEEL_SIZE; i++) Loading