Re: v5.7: new core kernel option missing help text

From: Thara Gopinath
Date: Thu Jun 04 2020 - 18:23:35 EST




On 6/4/20 11:38 AM, Valentin Schneider wrote:

On 04/06/20 14:05, Thara Gopinath wrote:
On Thu, 4 Jun 2020 at 06:56, Valentin Schneider <valentin.schneider@xxxxxxx>

Right, s/defconfig/arch kconfig/ or somesuch.


CPU_FREQ_THERMAL also has to be enabled for this to be effective.
Since arm64 defconfig enables CPU_FREQ_THERMAL (by enabling CPU_THERMAL),
it should be ok to enable it in arm64/Kconfig. (same with arm/Kconfig)

Another option is to select the SCHED_THERMAL_PRESSURE when
CPU_FREQ_THERMAL
is enabled in drivers/thermal/Kconfig.


So interestingly while arch_set_thermal_pressure() (which just writes to a
pcpu variable) is defined in sched/core.c, arch_scale_thermal_pressure()
(which just returns aforementionned pcpu variable) is defined in
arch_topology...

I'm thinking at this point we might as well turn the
arch_scale_thermal_pressure() stub into what arch_topology does. This would
effectively let any architecture use thermal pressure, providing they use
cpufreq cooling.

If we want to keep changes contained to Kconfigs, for now I think the
safest would be:

Thanks Valentin. This looks good to me for now. Although, I want to state that the thermal pressure can be set by some other entity other than cpufreq cooling as well. But currently only cpufreq cooling handles it. So for now the below looks good.


---
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 16fbf74030fe..1e92080dc275 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -46,6 +46,7 @@ config ARM
select EDAC_ATOMIC_SCRUB
select GENERIC_ALLOCATOR
select GENERIC_ARCH_TOPOLOGY if ARM_CPU_TOPOLOGY
+ select SCHED_THERMAL_PRESSURE if GENERIC_ARCH_TOPOLOGY
select GENERIC_ATOMIC64 if CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI
select GENERIC_CLOCKEVENTS_BROADCAST if SMP
select GENERIC_CPU_AUTOPROBE
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 552d36cacc05..cc1944fbae51 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -98,6 +98,7 @@ config ARM64
select FRAME_POINTER
select GENERIC_ALLOCATOR
select GENERIC_ARCH_TOPOLOGY
+ select SCHED_THERMAL_PRESSURE
select GENERIC_CLOCKEVENTS
select GENERIC_CLOCKEVENTS_BROADCAST
select GENERIC_CPU_AUTOPROBE
diff --git a/init/Kconfig b/init/Kconfig
index 74a5ac65644f..ba846f6e805b 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -439,8 +439,11 @@ config HAVE_SCHED_AVG_IRQ
depends on SMP

config SCHED_THERMAL_PRESSURE
- bool "Enable periodic averaging of thermal pressure"
+ def_bool n
depends on SMP
+ depends on CPU_FREQ_THERMAL
+ help
+ <helpful thing here>

config BSD_PROCESS_ACCT
bool "BSD Process Accounting"
---



Warm Regards
Thara

--
Warm Regards
Thara