diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-07-30 04:13:35 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-07-31 11:20:49 -0400 |
| commit | 18e4e36c66d6edbdefc639692206cdf01e468713 (patch) | |
| tree | 271a70892fa5808459a1cfc30aa3b5631cd6647d | |
| parent | 50526968e99afbca34924abcb04658b6dd5c5ea5 (diff) | |
sched: eliminate scd->prev_raw
eliminate prev_raw and use tick_raw instead.
It's enough to base the current time on the scheduler tick timestamp
alone - the monotonicity and maximum checks will prevent any damage.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Mike Galbraith <efault@gmx.de>
| -rw-r--r-- | kernel/sched_clock.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c index b96559cb96a5..4b8474c966dc 100644 --- a/kernel/sched_clock.c +++ b/kernel/sched_clock.c | |||
| @@ -53,7 +53,6 @@ struct sched_clock_data { | |||
| 53 | raw_spinlock_t lock; | 53 | raw_spinlock_t lock; |
| 54 | 54 | ||
| 55 | unsigned long tick_jiffies; | 55 | unsigned long tick_jiffies; |
| 56 | u64 prev_raw; | ||
| 57 | u64 tick_raw; | 56 | u64 tick_raw; |
| 58 | u64 tick_gtod; | 57 | u64 tick_gtod; |
| 59 | u64 clock; | 58 | u64 clock; |
| @@ -84,7 +83,6 @@ void sched_clock_init(void) | |||
| 84 | 83 | ||
| 85 | scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 84 | scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; |
| 86 | scd->tick_jiffies = now_jiffies; | 85 | scd->tick_jiffies = now_jiffies; |
| 87 | scd->prev_raw = 0; | ||
| 88 | scd->tick_raw = 0; | 86 | scd->tick_raw = 0; |
| 89 | scd->tick_gtod = ktime_now; | 87 | scd->tick_gtod = ktime_now; |
| 90 | scd->clock = ktime_now; | 88 | scd->clock = ktime_now; |
| @@ -105,7 +103,7 @@ static void __update_sched_clock(struct sched_clock_data *scd, u64 now) | |||
| 105 | long delta_jiffies = now_jiffies - scd->tick_jiffies; | 103 | long delta_jiffies = now_jiffies - scd->tick_jiffies; |
| 106 | u64 clock = scd->clock; | 104 | u64 clock = scd->clock; |
| 107 | u64 min_clock, max_clock; | 105 | u64 min_clock, max_clock; |
| 108 | s64 delta = now - scd->prev_raw; | 106 | s64 delta = now - scd->tick_raw; |
| 109 | 107 | ||
| 110 | WARN_ON_ONCE(!irqs_disabled()); | 108 | WARN_ON_ONCE(!irqs_disabled()); |
| 111 | min_clock = scd->tick_gtod + delta_jiffies * TICK_NSEC; | 109 | min_clock = scd->tick_gtod + delta_jiffies * TICK_NSEC; |
| @@ -130,7 +128,6 @@ static void __update_sched_clock(struct sched_clock_data *scd, u64 now) | |||
| 130 | if (unlikely(clock < min_clock)) | 128 | if (unlikely(clock < min_clock)) |
| 131 | clock = min_clock; | 129 | clock = min_clock; |
| 132 | 130 | ||
| 133 | scd->prev_raw = now; | ||
| 134 | scd->tick_jiffies = now_jiffies; | 131 | scd->tick_jiffies = now_jiffies; |
| 135 | scd->clock = clock; | 132 | scd->clock = clock; |
| 136 | } | 133 | } |
| @@ -234,7 +231,6 @@ void sched_clock_idle_wakeup_event(u64 delta_ns) | |||
| 234 | * rq clock: | 231 | * rq clock: |
| 235 | */ | 232 | */ |
| 236 | __raw_spin_lock(&scd->lock); | 233 | __raw_spin_lock(&scd->lock); |
| 237 | scd->prev_raw = now; | ||
| 238 | scd->clock += delta_ns; | 234 | scd->clock += delta_ns; |
| 239 | __raw_spin_unlock(&scd->lock); | 235 | __raw_spin_unlock(&scd->lock); |
| 240 | 236 | ||
