diff options
| -rw-r--r-- | kernel/sched_clock.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/sched_clock.c b/kernel/sched_clock.c index ce05271219ab..e383bc7df6dd 100644 --- a/kernel/sched_clock.c +++ b/kernel/sched_clock.c | |||
| @@ -40,7 +40,7 @@ struct sched_clock_data { | |||
| 40 | */ | 40 | */ |
| 41 | raw_spinlock_t lock; | 41 | raw_spinlock_t lock; |
| 42 | 42 | ||
| 43 | unsigned long prev_jiffies; | 43 | unsigned long tick_jiffies; |
| 44 | u64 prev_raw; | 44 | u64 prev_raw; |
| 45 | u64 tick_raw; | 45 | u64 tick_raw; |
| 46 | u64 tick_gtod; | 46 | u64 tick_gtod; |
| @@ -71,7 +71,7 @@ void sched_clock_init(void) | |||
| 71 | struct sched_clock_data *scd = cpu_sdc(cpu); | 71 | struct sched_clock_data *scd = cpu_sdc(cpu); |
| 72 | 72 | ||
| 73 | scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; | 73 | scd->lock = (raw_spinlock_t)__RAW_SPIN_LOCK_UNLOCKED; |
| 74 | scd->prev_jiffies = now_jiffies; | 74 | scd->tick_jiffies = now_jiffies; |
| 75 | scd->prev_raw = 0; | 75 | scd->prev_raw = 0; |
| 76 | scd->tick_raw = 0; | 76 | scd->tick_raw = 0; |
| 77 | scd->tick_gtod = ktime_now; | 77 | scd->tick_gtod = ktime_now; |
| @@ -90,7 +90,7 @@ void sched_clock_init(void) | |||
| 90 | static void __update_sched_clock(struct sched_clock_data *scd, u64 now) | 90 | static void __update_sched_clock(struct sched_clock_data *scd, u64 now) |
| 91 | { | 91 | { |
| 92 | unsigned long now_jiffies = jiffies; | 92 | unsigned long now_jiffies = jiffies; |
| 93 | long delta_jiffies = now_jiffies - scd->prev_jiffies; | 93 | long delta_jiffies = now_jiffies - scd->tick_jiffies; |
| 94 | u64 clock = scd->clock; | 94 | u64 clock = scd->clock; |
| 95 | u64 min_clock, max_clock; | 95 | u64 min_clock, max_clock; |
| 96 | s64 delta = now - scd->prev_raw; | 96 | s64 delta = now - scd->prev_raw; |
| @@ -119,7 +119,6 @@ static void __update_sched_clock(struct sched_clock_data *scd, u64 now) | |||
| 119 | clock = min_clock; | 119 | clock = min_clock; |
| 120 | 120 | ||
| 121 | scd->prev_raw = now; | 121 | scd->prev_raw = now; |
| 122 | scd->prev_jiffies = now_jiffies; | ||
| 123 | scd->clock = clock; | 122 | scd->clock = clock; |
| 124 | } | 123 | } |
| 125 | 124 | ||
| @@ -179,6 +178,7 @@ u64 sched_clock_cpu(int cpu) | |||
| 179 | void sched_clock_tick(void) | 178 | void sched_clock_tick(void) |
| 180 | { | 179 | { |
| 181 | struct sched_clock_data *scd = this_scd(); | 180 | struct sched_clock_data *scd = this_scd(); |
| 181 | unsigned long now_jiffies = jiffies; | ||
| 182 | u64 now, now_gtod; | 182 | u64 now, now_gtod; |
| 183 | 183 | ||
| 184 | if (unlikely(!sched_clock_running)) | 184 | if (unlikely(!sched_clock_running)) |
| @@ -196,6 +196,7 @@ void sched_clock_tick(void) | |||
| 196 | * already observe 1 new jiffy; adding a new tick_gtod to that would | 196 | * already observe 1 new jiffy; adding a new tick_gtod to that would |
| 197 | * increase the clock 2 jiffies. | 197 | * increase the clock 2 jiffies. |
| 198 | */ | 198 | */ |
| 199 | scd->tick_jiffies = now_jiffies; | ||
| 199 | scd->tick_raw = now; | 200 | scd->tick_raw = now; |
| 200 | scd->tick_gtod = now_gtod; | 201 | scd->tick_gtod = now_gtod; |
| 201 | __raw_spin_unlock(&scd->lock); | 202 | __raw_spin_unlock(&scd->lock); |
