O temperaturze i dokładności
Za oknem ciepło i słonecznie, ale dzisiaj skupiłem się na temperaturze wewnątrz komputera. Wykresiki dot. dysku NVMe pokazywały takie dziwne, nieokrągłe końcówki:
# sensors nvme-*
nvme-pci-0100
Adapter: PCI adapter
Composite: +36.9°C (low = -0.1°C, high = +69.8°C)
(crit = +89.8°C)
Dokładnie to widać tu:
nvme-pci-0100 Composite: temp1_input: 36.850 temp1_max: 69.850 temp1_min: -0.150 temp1_crit: 89.850 temp1_alarm: 0.000
Co ciekawe, polecenie nvme smart-log /dev/nvme0 pokazuje „pełne” stopnie. Poprawienie wydruku
lm_sensors jest trywialne, w konfiguracji wystarczy dopisać:
chip "nvme-pci-0100"
# bump readings, all ends with *.85
compute temp1 @+0.15, @-0.15
I od razu wartości wyglądają na bardziej ludzkie:
# sensors nvme-*
Composite: +37.0°C (low = +0.0°C, high = +70.0°C)
(crit = +90.0°C)
No dobrze. Ale dlaczego takie przesunięcie? Piętnaście setnych to nie jest np. ⅛, co od biedy możnaby podciągnąć pod zaokrąglenia bitowe.
Zacząłem od źródła, czyli specyfikacji Non-Volatile Memory Host Controller Interface Specification (NVMe). Stoi tam:
Composite Temperature: Contains a value corresponding to a temperature in degrees Kelvin that represents the current composite temperature of the controller and namespace(s).
Poza tym, że jest tu błąd – nie ma „stopni” Kelwina, są po prostu kelwiny – to zaczyna wyłaniać się logiczne rozwiązanie.
Jak wiadomo ze szkoły, początek skali, zero kelwinów to -273°C… nie! To -273,15°C. Dla wygody zazwyczaj pomijamy tę końcówkę. I stąd ta rożnica.
Szybkie spojrzenie w kod źródłowy wyjaśnia też różnice w prezentacji. nvme-cli operuje
na liczbach całkowitych, odejmując od odczytanej ze sprzętu wartości 273, co daje temperaturę w
stopniach Celsjusza.
Z kolei podsystem hwmon w Linuksie operuje na tysięcznych częściach stopnia,
a do przeliczenia używane jest makro kelvin_to_millicelsius(). Oczywiście
w tym przypadku końcówka piętnastu setnych jest stosowana. Niestety, dane wejściowe
nie zapewniają wymaganej dokładności, i efekt jest nie do końca zadowalający.
To taka ilustracja powiedzenia, że nadgorliwość gorsza od faszyzmu.
Tomasz Torcz
Comments
Comments powered by Disqus