• Valentin Schneider's avatar
    arch_topology, sched/core: Cleanup thermal pressure definition · 25980c7a
    Valentin Schneider authored
    The following commit:
    
      14533a16 ("thermal/cpu-cooling, sched/core: Move the arch_set_thermal_pressure() API to generic scheduler code")
    
    moved the definition of arch_set_thermal_pressure() to sched/core.c, but
    kept its declaration in linux/arch_topology.h. When building e.g. an x86
    kernel with CONFIG_SCHED_THERMAL_PRESSURE=y, cpufreq_cooling.c ends up
    getting the declaration of arch_set_thermal_pressure() from
    include/linux/arch_topology.h, which is somewhat awkward.
    
    On top of this, sched/core.c unconditionally defines
    o The thermal_pressure percpu variable
    o arch_set_thermal_pressure()
    
    while arch_scale_thermal_pressure() does nothing unless redefined by the
    architecture.
    
    arch_*() functions are meant to be defined by architectures, so revert the
    aforementioned commit and re-implement it in a way that keeps
    arch_set_thermal_pressure() architecture-definable, and doesn't define the
    thermal pressure percpu variable for kernels that don't need
    it (CONFIG_SCHED_THERMAL_PRESSURE=n).
    Signed-off-by: default avatarValentin Schneider <valentin.schneider@arm.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20200712165917.9168-2-valentin.schneider@arm.com
    25980c7a
core.c 210 KB