Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
- index 3ab2899..e4b6a9a 100644
- --- a/kernel/hrtimer.c
- +++ b/kernel/hrtimer.c
- @@ -1293,8 +1293,9 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
- void hrtimer_interrupt(struct clock_event_device *dev)
- {
- struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
- - ktime_t expires_next, now, entry_time, delta;
- - int i, retries = 0;
- + ktime_t expires_next, now, entry_time, delta, expires = {.tv64 = 0};
- + int i, retries = 0, count = 0;
- + static int total_spurious;
- BUG_ON(!cpu_base->hres_active);
- cpu_base->nr_events++;
- @@ -1343,7 +1344,6 @@ void hrtimer_interrupt(struct clock_event_device *dev)
- */
- if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer)) {
- - ktime_t expires;
- expires = ktime_sub(hrtimer_get_expires(timer),
- base->offset);
- @@ -1354,10 +1354,20 @@ void hrtimer_interrupt(struct clock_event_device *dev)
- break;
- }
- + count++;
- __run_hrtimer(timer, &basenow);
- }
- }
- + if (!count) {
- + pr_info("%s: cpu: %d, activebases:%u, totalspurious:%d\n",
- + __func__, raw_smp_processor_id(),
- + cpu_base->active_bases, ++total_spurious);
- + pr_info("%s: now:%llu, expires:%llu, expires_next:%llu, tick-stopped:%d\n",
- + __func__, now.tv64, expires.tv64, expires_next.tv64,
- + tick_nohz_tick_stopped());
- + }
- +
- /*
- * Store the new expiry value so the migration code can verify
- * against it.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement