Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: loading new envstat properties reboots system
On Thu, 16 Dec 2010, Nicolas Joly wrote:
On Wed, Dec 15, 2010 at 05:14:31PM -0800, Paul Goyette wrote:
On Thu, 16 Dec 2010, Nicolas Joly wrote:
root@petaure [~]# envstat -S
root@petaure [~]# envstat
                Current  CritMax  WarnMax  WarnMin  CritMin Unit
[amdtemp0]
CPU0 Sensor0:    51.250          -273.117                   degC
CPU0 Sensor1:    41.000          -273.117                   degC
CPU1 Sensor0:    51.500          -273.117                   degC
CPU1 Sensor1:    49.250          -273.117                   degC
The -273.117 values looks ... wrong.
Definitely wrong.  :)  But most likely an error in amdtemp(4) driver.
Does not seems amdtemp related. I can reproduce it using swsensor.
njoly@lanfeust [~]# modstat -n swsensor
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
root@lanfeust [~]# modload -i type=0 swsensor
root@lanfeust [~]# modstat -n swsensor
NAME             CLASS      SOURCE     REFS  SIZE     REQUIRES
swsensor         driver     filesys    0     1805     -
root@lanfeust [~]# envstat -d swsensor
         Current  CritMax  WarnMax  WarnMin  CritMin Unit
sensor:
root@lanfeust [~]# cat swsensor.conf
swsensor {
 sensor0 { critical-min = 85C; critical-max = 92C; }
}
root@lanfeust [~]# envstat -c swsensor.conf
root@lanfeust [~]# envstat -d swsensor
         Current  CritMax  WarnMax  WarnMin  CritMin Unit
sensor:  92.000                     85.000
root@lanfeust [~]# envstat -d swsensor
         Current  CritMax  WarnMax  WarnMin  CritMin Unit
sensor:         -273.117
Comparing `envstat -x' output from a freshly loaded sensor, and after
cleanup show that some limits remains :
root@lanfeust [NetBSD/envstat]# diff init.xml clean.xml
3a4,5
                        <key>critical-min</key>
                        <integer>0</integer>
15a18,19
                        <key>warning-max</key>
                        <integer>32640</integer>
Hmm ... Where does the WarnMax limit comes from ? It should not
exists.
Looking at it now...
NB: envstat output looks bad when Temp value is 0uK, correct
otherwise.
I just never expected the current value to be zero.  Zero's are 
deliberately printed as a blank field.  Following patch fixes.
Index: envstat.c
===================================================================
RCS file: /cvsroot/src/usr.sbin/envstat/envstat.c,v
retrieving revision 1.84
diff -u -p -r1.84 envstat.c
--- envstat.c   14 Dec 2010 08:04:14 -0000      1.84
+++ envstat.c   16 Dec 2010 12:38:34 -0000
@@ -852,7 +852,6 @@ do {                                                       \
                        PRINTTEMP(sensor->cur_value);
                        stype = degrees;
-                       ilen = 8;
                        if (statistics) {
                                /* show statistics if flag set */
                                PRINTTEMP(stats->max);
NB2: What about adding ability to set an inital value when loading the
module; something like `modload -i type=0 -i value=273150000 swsensor' ?
I was lazy.  :)
And besides, there's already a perfectly good way to set the value, with 
sysctl(8).
Seriously, it would be trivial, and I think I will do this today.
-------------------------------------------------------------------------
| Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:       |
| Customer Service | FA29 0E3B 35AF E8AE 6651 | paul at whooppee.com    |
| Network Engineer | 0786 F758 55DE 53BA 7731 | pgoyette at juniper.net |
| Kernel Developer |                          | pgoyette at netbsd.org  |
-------------------------------------------------------------------------
Home |
Main Index |
Thread Index |
Old Index