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.
Comments
Comments powered by Disqus