内核热区在dts文件中是什么意思?
What does kernel thermal zone mean in dts file?
在我内核的dts文件中,我有:
thermal-zones {
cpu0_thermal: cpu0-thermal {
thermal-sensors = <&tmuctrl_0>;
polling-delay-passive = <1000>;
polling-delay = <1000>;
trips {
cpu_alert0: cpu-alert-0 {
temperature = <100000>;
hysteresis = <1000>;
type = "active";
};
cpu_alert1: cpu-alert-1 {
temperature = <110000>;
hysteresis = <1000>;
type = "passive";
};
cpu_alert2: cpu-alert-2 {
temperature = <120000>;
hysteresis = <1000>;
type = "passive";
};
cpu-crit-0 {
temperature = <130000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu_alert0>;
cooling-device = <&cpu0 1 1>;
};
map1 {
trip = <&cpu_alert1>;
cooling-device = <&cpu0 4 4>;
};
map2 {
trip = <&cpu_alert2>;
cooling-device = <&cpu0 10 10>;
};
};
};
};
似乎被动意味着只使用 CPU,主动意味着使用任何风扇冷却设备。
我的问题:CPU的冷却装置中的两个数字代表什么?
https://www.kernel.org/doc/Documentation/devicetree/bindings/thermal/thermal.txt 说:"Cooling states are referred to by single unsigned integers, where larger numbers mean greater heat dissipation."
但是 1、4 和 10 是什么?这仅适用于 cpufreq 是按需的吗? "cooling" 频率是如何计算的?是否有 DTS 的另一部分链接到这些值?
我不完全确定它是通用的还是特定于我的 ARM 设备,但我通过阅读提交评论发现数字 (1, 4, 10) 仅对应于 CPU 的油门在点播模式下。在我的特定情况下,这些数字代表 100MHz 的油门测量值。因此,10 表示 CPU 在比其最大频率低 1GHz 时被节流。
in DTS cooling-device = <&cpu0 1 1> 用于表示与热区触发点绑定的冷却设备的状态。在你的情况下,冷却设备是 cpu 这意味着你的热区跳变点与 cpu 绑定并且 dts 中的 1 1 代表节流状态。所有这些都可以从 sysfs 界面读取,也可以从 user-space 读取。通过下面 link 了解详细信息:
https://www.lookup2learn.com/post/thermal-management-in-linux
在我内核的dts文件中,我有:
thermal-zones {
cpu0_thermal: cpu0-thermal {
thermal-sensors = <&tmuctrl_0>;
polling-delay-passive = <1000>;
polling-delay = <1000>;
trips {
cpu_alert0: cpu-alert-0 {
temperature = <100000>;
hysteresis = <1000>;
type = "active";
};
cpu_alert1: cpu-alert-1 {
temperature = <110000>;
hysteresis = <1000>;
type = "passive";
};
cpu_alert2: cpu-alert-2 {
temperature = <120000>;
hysteresis = <1000>;
type = "passive";
};
cpu-crit-0 {
temperature = <130000>;
hysteresis = <1000>;
type = "critical";
};
};
cooling-maps {
map0 {
trip = <&cpu_alert0>;
cooling-device = <&cpu0 1 1>;
};
map1 {
trip = <&cpu_alert1>;
cooling-device = <&cpu0 4 4>;
};
map2 {
trip = <&cpu_alert2>;
cooling-device = <&cpu0 10 10>;
};
};
};
};
似乎被动意味着只使用 CPU,主动意味着使用任何风扇冷却设备。
我的问题:CPU的冷却装置中的两个数字代表什么?
https://www.kernel.org/doc/Documentation/devicetree/bindings/thermal/thermal.txt 说:"Cooling states are referred to by single unsigned integers, where larger numbers mean greater heat dissipation."
但是 1、4 和 10 是什么?这仅适用于 cpufreq 是按需的吗? "cooling" 频率是如何计算的?是否有 DTS 的另一部分链接到这些值?
我不完全确定它是通用的还是特定于我的 ARM 设备,但我通过阅读提交评论发现数字 (1, 4, 10) 仅对应于 CPU 的油门在点播模式下。在我的特定情况下,这些数字代表 100MHz 的油门测量值。因此,10 表示 CPU 在比其最大频率低 1GHz 时被节流。
in DTS cooling-device = <&cpu0 1 1> 用于表示与热区触发点绑定的冷却设备的状态。在你的情况下,冷却设备是 cpu 这意味着你的热区跳变点与 cpu 绑定并且 dts 中的 1 1 代表节流状态。所有这些都可以从 sysfs 界面读取,也可以从 user-space 读取。通过下面 link 了解详细信息: https://www.lookup2learn.com/post/thermal-management-in-linux