Hi Ok, we won't use interrupts. Now, I'd like to have some kind of signal that warns about CPU going above max temperature. For example, through sensord. But the problem is that some seconds after the alarm is triggered the ALARM message of sensors does not appear any more. Shouldn't the alarm bit remain set until it is read? And if it's only read by show_* functions (i.e. it87_update_device() ), why does it go away? The result is that the alarm is lost. Am I doing any false assumption or is my chip not following the specification? I've done a simple experiment to demonstrate this: First I ran sensors every 5 seconds and then every 1 second: # while [ 1 ]; do sensors | grep ^CPU; sleep 5; done CPU Temp: +28.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +29.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +30.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +31.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +31.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +31.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +32.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +32.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +32.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +34.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +34.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +34.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +35.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode # while [ 1 ]; do sensors | grep ^CPU; sleep 1; done (for clarity I've compressed the output by placing a multiplier at the end meaning the number of identical lines) CPU Temp: +28.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +28.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode CPU Temp: +29.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *6 CPU Temp: +30.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *8 CPU Temp: +31.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *10 CPU Temp: +32.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *12 CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) ALARM sensor = thermal diode CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) ALARM sensor = thermal diode CPU Temp: +33.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *10 CPU Temp: +34.0?C (low = +29.0?C, high = +33.0?C) sensor = thermal diode *3 As you can see, I took care to reach the hysteresis temperature (29 deg)