aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-12-29 11:54:15 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-12-29 11:54:15 -0800
commit61233580f1f33c50e159c50e24d80ffd2ba2e06b (patch)
tree5f24b18f2a1178e3c022b59e439bd66680b56717 /kernel/time
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (diff)
parentcpufreq: schedutil: Use idle_calls counter of the remote CPU (diff)
downloadlinux-dev-61233580f1f33c50e159c50e24d80ffd2ba2e06b.tar.xz
linux-dev-61233580f1f33c50e159c50e24d80ffd2ba2e06b.zip
Merge tag 'pm-4.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fix from Rafael Wysocki: "This fixes a schedutil cpufreq governor regression from the 4.14 cycle that may cause a CPU idleness check to return incorrect results in some cases which leads to suboptimal decisions (Joel Fernandes)" * tag 'pm-4.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: cpufreq: schedutil: Use idle_calls counter of the remote CPU
Diffstat (limited to 'kernel/time')
-rw-r--r--kernel/time/tick-sched.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 99578f06c8d4..77555faf6fbc 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -986,6 +986,19 @@ ktime_t tick_nohz_get_sleep_length(void)
}
/**
+ * tick_nohz_get_idle_calls_cpu - return the current idle calls counter value
+ * for a particular CPU.
+ *
+ * Called from the schedutil frequency scaling governor in scheduler context.
+ */
+unsigned long tick_nohz_get_idle_calls_cpu(int cpu)
+{
+ struct tick_sched *ts = tick_get_tick_sched(cpu);
+
+ return ts->idle_calls;
+}
+
+/**
* tick_nohz_get_idle_calls - return the current idle calls counter value
*
* Called from the schedutil frequency scaling governor in scheduler context.