NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/39022: sysmon_envsys reports erroneous events
>Number: 39022
>Category: kern
>Synopsis: sysmon_envsys reports erroneous events
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Jun 22 16:35:00 +0000 2008
>Originator: Paul Goyette
>Release: NetBSD current 4.99.66
>Organization:
>Environment:
NetBSD quicky.whooppee.com 4.99.66 NetBSD 4.99.66 (QUICKY (ASUS M2N32 WS)
2008-06-20 03:02:36) #1: Fri Jun 20 04:58:08 PDT 2008
paul%speedy.whooppee.com@localhost:/build/obj/amd64/sys/arch/amd64/compile/QUICKY
amd64
>Description:
In the case of a rapidly-changing sensor value, the current sysmon_envsys
architecture will erroneously report multiple events for a single change in
sensor value. This is due to monitoring each individual threshold
independantly.
As an example, consider a sensor which has a crit_min value of 40 and a
crit_max value of 50.
At T=0, the sensor is refreshed and the value is 45. State is normal.
At T=1, the sensor is refreshed and the new value is 55. This correctly
triggers a USER_CRITOVER event.
Now, at T=2, the sensor is again refreshed and has a new value of 35. The
USER_CRITOVER event now erroneously reports a "back to normal" condition, AND
the USER_CRITUNDER event reports its own event.
>How-To-Repeat:
Unless you have a rapidly changing sensor, you can reproduce this bug manually
by adjusting the user-specified crit_{min,max} values. For example, if you
have a temp sensor that stays between 34C and 38C, you can trigger the T=1
event by setting crit_min = 20C and crit_max = 30C. To trigger the T=2 event,
just reset the limits to crit_min=40C and crit_max=50C.
>Fix:
I believe a fix for this requires modifications to the envsys2 design, to treat
all the user-specified limits as a single monitor event, rather than as
separate and independant events.
Home |
Main Index |
Thread Index |
Old Index