Advertisement
Guest User

Untitled

a guest
Jul 10th, 2014
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
  2. index 3ab2899..e4b6a9a 100644
  3. --- a/kernel/hrtimer.c
  4. +++ b/kernel/hrtimer.c
  5. @@ -1293,8 +1293,9 @@ static void __run_hrtimer(struct hrtimer *timer, ktime_t *now)
  6. void hrtimer_interrupt(struct clock_event_device *dev)
  7. {
  8. struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
  9. - ktime_t expires_next, now, entry_time, delta;
  10. - int i, retries = 0;
  11. + ktime_t expires_next, now, entry_time, delta, expires = {.tv64 = 0};
  12. + int i, retries = 0, count = 0;
  13. + static int total_spurious;
  14.  
  15. BUG_ON(!cpu_base->hres_active);
  16. cpu_base->nr_events++;
  17. @@ -1343,7 +1344,6 @@ void hrtimer_interrupt(struct clock_event_device *dev)
  18. */
  19.  
  20. if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer)) {
  21. - ktime_t expires;
  22.  
  23. expires = ktime_sub(hrtimer_get_expires(timer),
  24. base->offset);
  25. @@ -1354,10 +1354,20 @@ void hrtimer_interrupt(struct clock_event_device *dev)
  26. break;
  27. }
  28.  
  29. + count++;
  30. __run_hrtimer(timer, &basenow);
  31. }
  32. }
  33.  
  34. + if (!count) {
  35. + pr_info("%s: cpu: %d, activebases:%u, totalspurious:%d\n",
  36. + __func__, raw_smp_processor_id(),
  37. + cpu_base->active_bases, ++total_spurious);
  38. + pr_info("%s: now:%llu, expires:%llu, expires_next:%llu, tick-stopped:%d\n",
  39. + __func__, now.tv64, expires.tv64, expires_next.tv64,
  40. + tick_nohz_tick_stopped());
  41. + }
  42. +
  43. /*
  44. * Store the new expiry value so the migration code can verify
  45. * against it.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement