OSDN Git Service

thermal/cpu-cooling, sched/core: Move the arch_set_thermal_pressure() API to generic...
authorIngo Molnar <mingo@kernel.org>
Fri, 6 Mar 2020 13:26:31 +0000 (14:26 +0100)
committerIngo Molnar <mingo@kernel.org>
Fri, 6 Mar 2020 13:26:31 +0000 (14:26 +0100)
drivers/base/arch_topology.c is only built if CONFIG_GENERIC_ARCH_TOPOLOGY=y,
resulting in such build failures:

  cpufreq_cooling.c:(.text+0x1e7): undefined reference to `arch_set_thermal_pressure'

Move it to sched/core.c instead, and keep it enabled on x86 despite
us not having a arch_scale_thermal_pressure() facility there, to
build-test this thing.

Cc: Thara Gopinath <thara.gopinath@linaro.org>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
drivers/base/arch_topology.c
kernel/sched/core.c

index 68dfa49..6119e11 100644 (file)
@@ -42,17 +42,6 @@ void topology_set_cpu_scale(unsigned int cpu, unsigned long capacity)
        per_cpu(cpu_scale, cpu) = capacity;
 }
 
-DEFINE_PER_CPU(unsigned long, thermal_pressure);
-
-void arch_set_thermal_pressure(struct cpumask *cpus,
-                              unsigned long th_pressure)
-{
-       int cpu;
-
-       for_each_cpu(cpu, cpus)
-               WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
-}
-
 static ssize_t cpu_capacity_show(struct device *dev,
                                 struct device_attribute *attr,
                                 char *buf)
index 4d76df3..978bf6f 100644 (file)
@@ -3576,6 +3576,17 @@ unsigned long long task_sched_runtime(struct task_struct *p)
        return ns;
 }
 
+DEFINE_PER_CPU(unsigned long, thermal_pressure);
+
+void arch_set_thermal_pressure(struct cpumask *cpus,
+                              unsigned long th_pressure)
+{
+       int cpu;
+
+       for_each_cpu(cpu, cpus)
+               WRITE_ONCE(per_cpu(thermal_pressure, cpu), th_pressure);
+}
+
 /*
  * This function gets called by the timer code, with HZ frequency.
  * We call it with interrupts disabled.