Что означает термическая зона ядра в файле 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

Другие вопросы по тегам