You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
hrtimer: clean up cpu->base locking tricks
In order to more easily allow for the scheduler to use timers, clean up the locking a bit. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
48d5e25821
commit
2d44ae4d71
@@ -514,7 +514,6 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
|
||||
{
|
||||
struct tick_sched *ts =
|
||||
container_of(timer, struct tick_sched, sched_timer);
|
||||
struct hrtimer_cpu_base *base = timer->base->cpu_base;
|
||||
struct pt_regs *regs = get_irq_regs();
|
||||
ktime_t now = ktime_get();
|
||||
int cpu = smp_processor_id();
|
||||
@@ -552,15 +551,8 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer)
|
||||
touch_softlockup_watchdog();
|
||||
ts->idle_jiffies++;
|
||||
}
|
||||
/*
|
||||
* update_process_times() might take tasklist_lock, hence
|
||||
* drop the base lock. sched-tick hrtimers are per-CPU and
|
||||
* never accessible by userspace APIs, so this is safe to do.
|
||||
*/
|
||||
spin_unlock(&base->lock);
|
||||
update_process_times(user_mode(regs));
|
||||
profile_tick(CPU_PROFILING);
|
||||
spin_lock(&base->lock);
|
||||
}
|
||||
|
||||
/* Do not restart, when we are in the idle loop */
|
||||
|
||||
Reference in New Issue
Block a user