Что означает термическая зона ядра в файле dts?
В файле 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>;
};
};
};
};
Кажется, что пассивный означает, что используется только процессор, активный означает, что используется любое охлаждающее устройство FAN.
Мой вопрос: что представляют две цифры в охлаждающем устройстве процессора?
https://www.kernel.org/doc/Documentation/devicetree/bindings/thermal/thermal.txt гласит: "Состояния охлаждения обозначаются одиночными целыми числами без знака, где большие числа означают большее рассеивание тепла".
Но что такое 1, 4 и 10? Будет ли это применяться, только если cpufreq является ondemand? Как рассчитываются частоты "охлаждения"? есть ли другая часть DTS, которая связана с этими значениями?
1 ответ
Я не совсем уверен, является ли он общим или специфичным для моего устройства ARM, но, прочитав комментарии коммитов, я выяснил, что число (1, 4, 10) соответствует дроссельной заслонке процессора только в режиме по требованию. В моем конкретном случае эти цифры представляют собой меру газа в 100 МГц. Следовательно, 10 означает, что процессор работает на 1 ГГц меньше своей максимальной частоты.
В DTS Cooling-device = <& cpu0 1 1> используется для представления состояний охлаждающего устройства, которое связано с точкой срабатывания тепловой зоны. В вашем случае охлаждающее устройство - это процессор, что означает, что ваша точка срабатывания тепловой зоны связана с процессором, а 1 1 в dts представляет состояние дросселирования. Все это можно прочитать из интерфейса sysfs также из пользовательского пространства. Для получения подробной информации перейдите по ссылке ниже: https://www.lookup2learn.com/post/thermal-management-in-linux