sched/walt: Drop arch-specific timer access
authorChris Redpath <chris.redpath@arm.com>
Tue, 20 Sep 2016 16:00:47 +0000 (17:00 +0100)
committerDmitry Shmidt <dimitrysh@google.com>
Tue, 20 Sep 2016 21:26:45 +0000 (21:26 +0000)
On at least one platform, occasionally the timer providing the wallclock
was able to be reset/go backwards for at least some time after wakeup.

Accept that this might happen and warn the first time, but otherwise just
carry on.

Change-Id: Id3164477ba79049561af7f0889cbeebc199ead4e
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
kernel/sched/walt.c

index 07b7f84b37e22de0ce8fba89a33645523f865501..2ffb1680b380e542bd767ab3b8d75e87ff0f75e9 100644 (file)
@@ -22,7 +22,6 @@
 #include <linux/syscore_ops.h>
 #include <linux/cpufreq.h>
 #include <trace/events/sched.h>
-#include <clocksource/arm_arch_timer.h>
 #include "sched.h"
 #include "walt.h"
 
@@ -188,10 +187,8 @@ update_window_start(struct rq *rq, u64 wallclock)
        delta = wallclock - rq->window_start;
        /* If the MPM global timer is cleared, set delta as 0 to avoid kernel BUG happening */
        if (delta < 0) {
-               if (arch_timer_read_counter() == 0)
-                       delta = 0;
-               else
-                       BUG_ON(1);
+               delta = 0;
+               WARN_ONCE(1, "WALT wallclock appears to have gone backwards or reset\n");
        }
 
        if (delta < walt_ravg_window)