]> rtime.felk.cvut.cz Git - linux-imx.git/blobdiff - kernel/time/tick-sched.c
Revert "cpuidle: Quickly notice prediction failure for repeat mode"
[linux-imx.git] / kernel / time / tick-sched.c
index 0cf1c14531817eacb61eae48f6f76a45a0cc8027..e77edc97e036b4e8216ae8b54fe0e6cafaa2fe71 100644 (file)
@@ -178,6 +178,11 @@ static bool can_stop_full_tick(void)
         */
        if (!sched_clock_stable) {
                trace_tick_stop(0, "unstable sched clock\n");
+               /*
+                * Don't allow the user to think they can get
+                * full NO_HZ with this machine.
+                */
+               WARN_ONCE(1, "NO_HZ FULL will not work with unstable sched clock");
                return false;
        }
 #endif
@@ -293,7 +298,7 @@ static int __init tick_nohz_full_setup(char *str)
 }
 __setup("nohz_full=", tick_nohz_full_setup);
 
-static int __cpuinit tick_nohz_cpu_down_callback(struct notifier_block *nfb,
+static int tick_nohz_cpu_down_callback(struct notifier_block *nfb,
                                                 unsigned long action,
                                                 void *hcpu)
 {
@@ -346,16 +351,6 @@ void __init tick_nohz_init(void)
        }
 
        cpu_notifier(tick_nohz_cpu_down_callback, 0);
-
-       /* Make sure full dynticks CPU are also RCU nocbs */
-       for_each_cpu(cpu, nohz_full_mask) {
-               if (!rcu_is_nocb_cpu(cpu)) {
-                       pr_warning("NO_HZ: CPU %d is not RCU nocb: "
-                                  "cleared from nohz_full range", cpu);
-                       cpumask_clear_cpu(cpu, nohz_full_mask);
-               }
-       }
-
        cpulist_scnprintf(nohz_full_buf, sizeof(nohz_full_buf), nohz_full_mask);
        pr_info("NO_HZ: Full dynticks CPUs: %s.\n", nohz_full_buf);
 }
@@ -832,13 +827,10 @@ void tick_nohz_irq_exit(void)
 {
        struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched);
 
-       if (ts->inidle) {
-               /* Cancel the timer because CPU already waken up from the C-states*/
-               menu_hrtimer_cancel();
+       if (ts->inidle)
                __tick_nohz_idle_enter(ts);
-       } else {
+       else
                tick_nohz_full_stop_tick(ts);
-       }
 }
 
 /**
@@ -936,8 +928,6 @@ void tick_nohz_idle_exit(void)
 
        ts->inidle = 0;
 
-       /* Cancel the timer because CPU already waken up from the C-states*/
-       menu_hrtimer_cancel();
        if (ts->idle_active || ts->tick_stopped)
                now = ktime_get();