diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-01-25 15:08:31 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 15:08:31 -0500 |
commit | 2d44ae4d7135b9aee26439b3523b43473381bc5f (patch) | |
tree | ba3afc0f03142d26f9238974dab5b99bf1dca1db /kernel/time | |
parent | 48d5e258216f1c7713633439beb98a38c7290649 (diff) |
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>
Diffstat (limited to 'kernel/time')
-rw-r--r-- | kernel/time/tick-sched.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c index 5f9fb645b725..1a21b6fdb674 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c | |||
@@ -514,7 +514,6 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer) | |||
514 | { | 514 | { |
515 | struct tick_sched *ts = | 515 | struct tick_sched *ts = |
516 | container_of(timer, struct tick_sched, sched_timer); | 516 | container_of(timer, struct tick_sched, sched_timer); |
517 | struct hrtimer_cpu_base *base = timer->base->cpu_base; | ||
518 | struct pt_regs *regs = get_irq_regs(); | 517 | struct pt_regs *regs = get_irq_regs(); |
519 | ktime_t now = ktime_get(); | 518 | ktime_t now = ktime_get(); |
520 | int cpu = smp_processor_id(); | 519 | int cpu = smp_processor_id(); |
@@ -552,15 +551,8 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer) | |||
552 | touch_softlockup_watchdog(); | 551 | touch_softlockup_watchdog(); |
553 | ts->idle_jiffies++; | 552 | ts->idle_jiffies++; |
554 | } | 553 | } |
555 | /* | ||
556 | * update_process_times() might take tasklist_lock, hence | ||
557 | * drop the base lock. sched-tick hrtimers are per-CPU and | ||
558 | * never accessible by userspace APIs, so this is safe to do. | ||
559 | */ | ||
560 | spin_unlock(&base->lock); | ||
561 | update_process_times(user_mode(regs)); | 554 | update_process_times(user_mode(regs)); |
562 | profile_tick(CPU_PROFILING); | 555 | profile_tick(CPU_PROFILING); |
563 | spin_lock(&base->lock); | ||
564 | } | 556 | } |
565 | 557 | ||
566 | /* Do not restart, when we are in the idle loop */ | 558 | /* Do not restart, when we are in the idle loop */ |