* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
@ 2006-09-10 18:41 ` Jean Delvare
2006-09-12 0:02 ` Jim Cromie
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2006-09-10 18:41 UTC (permalink / raw)
To: lm-sensors
Hi Jim,
> Ive hacked separate voltage alarms into pc87360, and Ive chosen to
> add a set_in_min_alarm() callback, which is contrary to the design given in
> Doc/hwmon/sysfs-interface:
>
> in[0-*]_min_alarm
> in[0-*]_max_alarm
> fan[1-*]_min_alarm
> temp[1-*]_min_alarm
> temp[1-*]_max_alarm
> temp[1-*]_crit_alarm
> Limit alarm
> 0: no alarm
> 1: alarm
> RO <-------- conflict here.
>
> So, to clear the alarm, I can now do
> echo 1 > in8_min_alarm
> or echo 0 > in8_min_alarm
> to clear the alarm. I ignore the value, since otherwize writing 0 would
> do nothing,
> and writing 0 is a reasonable expectation to turn off an alarm.
>
>
> Heres my reason:
>
> the Channel Hi/Lo Limit Exceeded bits are RW1C bits, ie write 1 to clear.
> They are both part of the status register, which is a non-obvious way to
> clear the
> alarm, and bit-position too, and the status attr-file is readonly anyway.
>
> So here it is in action:
>
> # sensors -s
> # sensors
> pc87366-isa-6620
> Adapter: ISA adapter
> avi0: +3.01 V (min = +0.00 V, max = +3.01 V)
> VCORE: +1.99 V (min = +0.00 V, max = +3.01 V)
> VCC: +4.96 V (min = +0.00 V, max = +6.03 V)
> VPWR: +12.34 V (min = +5.93 V, max = +28.02 V)
> +12V: +11.74 V (min = +0.00 V, max = +14.46 V)
> -12V: -12.97 V (min = -60.61 V, max = -2.76 V)
> GND: +0.00 V (min = +0.00 V, max = +3.01 V)
> Vsb: +3.31 V (min = +3.00 V, max = +3.59 V)
> Vdd: +2.95 V (min = +3.00 V, max = +3.59 V) ALARM
> Vbat: +3.01 V (min = +2.40 V, max = +3.01 V)
> AVdd: +3.28 V (min = +3.00 V, max = +3.59 V)
> Temp: +104 C (low = +0 C, high = +125 C)
> Critical: +126 C
> Voltage ID:
> +0.000 V (VRM Version 9.0)
>
> as you can see, Vdd is lower than min, and ALARM is 'issued' by sensors
>
> soekris:/sys/devices/platform/i2c-9191/9191-6620# ls in8*|more; cat in8*
> in8_alarm
> in8_input
> in8_max
> in8_max_alarm
> in8_min
> in8_min_alarm
> in8_status
> 0
> 1477
> 1796
> 0
> 1501
> 2
> 131
>
> here, I lower minimum, but alarm stays on, cuz its not (yet) explicitly
> cleared.
>
> soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1450 > in8_min
> soekris:/sys/devices/platform/i2c-9191/9191-6620# ls in8*|more; cat in8*
> in8_alarm
> in8_input
> in8_max
> in8_max_alarm
> in8_min
> in8_min_alarm
> in8_status
> 0
> 1465
> 1796
> 0
> 1453
> 2
> 131
It doesn't mean a thing at this point. Alarms stay as long as they
haven't been read at least once, by design. You'd need to "cat in8*"
again after a couple seconds, and my guess is that the alarm would
actually be cleared, because the driver does take care of it:
/* Voltages */
for (i = 0; i < data->innr; i++) {
data->in_status[i] = pc87360_read_value(data, LD_IN, i,
PC87365_REG_IN_STATUS);
/* Clear bits */
pc87360_write_value(data, LD_IN, i,
PC87365_REG_IN_STATUS,
data->in_status[i]);
So I think you are trying to fix a problem which doesn't exist.
>
> now I clear it
>
> soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 0 > in8_min_alarm
> soekris:/sys/devices/platform/i2c-9191/9191-6620# ls in8*|more; cat in8*
> in8_alarm
> in8_input
> in8_max
> in8_max_alarm
> in8_min
> in8_min_alarm
> in8_status
> 0
> 1477
> 1796
> 0
> 1453
> 0
> 145
Side note: bit 4 was set in the process, doesn't sound right to me.
> <digressions>
>
> status = 145 = 0x91.
> bit 7 = 1 means: New data not yet read.
> this suggests that the conversion thats been read is incomplete, and
> presumably inaccurate in the LSBs
Where in the datasheet do you see this?
To me, "new data not yet read" simply means that at least one sampling
cycle was completed since our last read. There's nothing wrong with
that, as the chip samples its inputs continuously and we only read the
values from times to times.
>
> also, in pc87360_detect, you set
> data->vrm = 90;
>
> looking at hwmon-vid.c, the vrm value is clearly related to CPU voltages,
> but this chip is a peripheral, so its not clear to me why you hardwired
> this number.
Because I wrote the pc87360 driver for Linux 2.4 in the first place,
where hwmon-vid and VRM detection didn't exist. Then I ported it to
Linux 2.6.10, where hwmon-vid still didn't existed, as it was
introduced in 2.6.14 if memory serves.
It would be better to use the autodetection now that we have code doing
that, you are right. Care to submit a patch doing this?
> btw, 1s conversion period could be related to the "New data not yet read"
I don't think so, but again this bit being set is not a problem as far
as I can see.
--
Jean Delvare
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
2006-09-10 18:41 ` Jean Delvare
@ 2006-09-12 0:02 ` Jim Cromie
2006-09-19 7:46 ` Jean Delvare
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jim Cromie @ 2006-09-12 0:02 UTC (permalink / raw)
To: lm-sensors
Jean Delvare wrote:
> Hi Jim,
>
>
>> as you can see, Vdd is lower than min, and ALARM is 'issued' by sensors
>>
>> here, I lower minimum, but alarm stays on, cuz its not (yet) explicitly
>> cleared.
>>
> It doesn't mean a thing at this point. Alarms stay as long as they
> haven't been read at least once, by design. You'd need to "cat in8*"
> again after a couple seconds, and my guess is that the alarm would
> actually be cleared, because the driver does take care of it:
>
>
You are correct. The 2nd cat shows it cleared. I'll yank that setter
callback.
<backpedalling> Im a bit surprised that in the course of playing with
it, I didnt run 2 cats
(iirc, the console stuff I pasted was a trim-down of what I did)
Anyway, thanks.
soekris:~# cd /sys/devices/platform/i2c-9191/9191-6620/
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8*
1477
1796
1501
147
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1450 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8*
1477
1796
1453
147
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8*
1477
1796
1453
145
>
> Side note: bit 4 was set in the process, doesn't sound right to me.
>
>
It happens w/o my separate-alarms hacks - the above listing is taken
from unaltered rc6-mm1
rc5 shows same. I'll poke at it some more.
>> <digressions>
>>
>> status = 145 = 0x91.
>> bit 7 = 1 means: New data not yet read.
>> this suggests that the conversion thats been read is incomplete, and
>> presumably inaccurate in the LSBs
>>
>
> Where in the datasheet do you see this?
>
>
in Winbond's PC87366.pdf, section 11.5.12, table 3 (page 189)
bit 7 is named "End of Conversion"
bit 4 is "Alarm Output Enable".
I dont understand what its enabling, I'll (get around to) add some
temporary code to poke at it,
and see whats happening.
> To me, "new data not yet read" simply means that at least one sampling
> cycle was completed since our last read. There's nothing wrong with
> that, as the chip samples its inputs continuously and we only read the
> values from times to times.
>
>
bit 7 is an RW1C bit, which means that the code you quoted above should
clear it,
esp when I do: cat in8*; cat in8*
oddly, it does not reset the bit.
Im not seeing anything misbehaving because of it.
>> also, in pc87360_detect, you set
>> data->vrm = 90;
>>
>>
>>
> It would be better to use the autodetection now that we have code doing
> that, you are right. Care to submit a patch doing this?
>
>
just sent.
>> btw, 1s conversion period could be related to the "New data not yet read"
>>
>
> I don't think so, but again this bit being set is not a problem as far
> as I can see.
>
>
Again, Ive not seen any misbehavior, just poking around..
thanks Jean,
jimc
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
2006-09-10 18:41 ` Jean Delvare
2006-09-12 0:02 ` Jim Cromie
@ 2006-09-19 7:46 ` Jean Delvare
2006-09-26 17:30 ` Jim Cromie
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2006-09-19 7:46 UTC (permalink / raw)
To: lm-sensors
Hi Jim,
> bit 7 is an RW1C bit, which means that the code you quoted above should
> clear it,
> esp when I do: cat in8*; cat in8*
> oddly, it does not reset the bit.
I think it does, but given that the PC87366 samples values faster than
the driver allows you to read them (due to the register cache) you
can't see it. You'd need to add some code to the driver or poke the
registers directly from user-space (using isaset and isadump) to see
the bit being actually reset.
But anyway, we don't care about this bit at all.
--
Jean Delvare
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (2 preceding siblings ...)
2006-09-19 7:46 ` Jean Delvare
@ 2006-09-26 17:30 ` Jim Cromie
2006-09-26 19:15 ` Jean Delvare
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jim Cromie @ 2006-09-26 17:30 UTC (permalink / raw)
To: lm-sensors
Jean Delvare wrote:
> Hi Jim,
>
>
> To me, "new data not yet read" simply means that at least one sampling
> cycle was completed since our last read. There's nothing wrong with
> that, as the chip samples its inputs continuously and we only read the
> values from times to times.
>
>
Looking again, I see a point of confusion at least, and a possible problem.
It may be one of interpretation, but is worth checking, and possibly
documenting.
The *not-yet-read* property pertains to the scan done by update_device(),
since thats what reads all sensors the driver supports.
But its easy to misconstrue not-yet-read as a property on the individual
alarms.
More importantly, any single read of any property will clear unrelated
alarms.
Let me demonstrate:
1- raise then lower the min setting, then check the alarm,
which is (properly) on. A 2nd read shows it cleared. (also proper)
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1500 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1400 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8_min_alarm
2
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8_min_alarm
0
2- repeat raise & lower, then read an *unrelated* attr
now 1st read of in8_min_alarm shows 0, the alarm state has been *missed*
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1500 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1400 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in2_min_alarm
0
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8_min_alarm
0
3- redo test 2, this time reading a setting, then reading alarm. its
off, should be on.
this time, its a readback of config value, which doensnt *need* to
trigger a scan,
but does cuz its simpler (I guess)
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1500 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# echo 1400 > in8_min
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8_min
1394
soekris:/sys/devices/platform/i2c-9191/9191-6620# cat in8_min_alarm
0
IOW, 2 reads of any 2 sysfs-files, separated by this much time, will
reset the alarm,
even though userspace has never seen the alarm.
if (time_after(jiffies, data->last_updated + HZ * 2) || !data->valid) {
dev_dbg(&client->dev, "Data update\n");
So, with the usual caveats (Ive done something wrong, immature code, etc)
I see a few possibilities:
1 - Document the fact - tell users not to do that.
this isnt unreasonable, and far simpler..
2 - sensors-deamon locks the directory to preclude loss of alarms (is
this possible ? bad idea ?)
3 - dunno
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (3 preceding siblings ...)
2006-09-26 17:30 ` Jim Cromie
@ 2006-09-26 19:15 ` Jean Delvare
2006-09-26 20:18 ` Jim Cromie
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2006-09-26 19:15 UTC (permalink / raw)
To: lm-sensors
Hi Jim,
> Looking again, I see a point of confusion at least, and a possible problem.
> It may be one of interpretation, but is worth checking, and possibly
> documenting.
>
> The *not-yet-read* property pertains to the scan done by update_device(),
> since thats what reads all sensors the driver supports.
> But its easy to misconstrue not-yet-read as a property on the individual
> alarms.
>
> More importantly, any single read of any property will clear unrelated
> alarms.
You are 100% correct. Things are as you describe, by driver design.
> So, with the usual caveats (Ive done something wrong, immature code, etc)
> I see a few possibilities:
>
> 1 - Document the fact - tell users not to do that.
> this isnt unreasonable, and far simpler..
The user can't do anything. The ones we need to tell are the
application authors. The end user looks at the temperatures in his nice
GUI, and doesn't decide what is read and when. At best he/she can
select the global refresh rate, and that's about it.
> 2 - sensors-deamon locks the directory to preclude loss of alarms (is
> this possible ? bad idea ?)
Which daemon?
> 3 - dunno
4 - don't care:
What's the point in spending efforts to make sure that the application
will see the one-time alarm, while you have absolutely no way to know
if the user will see it? Unless the application keeps the alarm on
until the user clicks to confirm that he/she did see the alarm... This
doesn't sound very friendly.
All GUIs I know of do not present the alarm data at all, by the way.
Could be because libsensors doesn't make their access very friendly at
the moment... But it could also be because end users don't care - they
can simply compare the measurement to the limits, or even judge the
measurement by themselves. The alarm bits are redundant.
Furthermore, I don't expect any application to actually do selective
reads. I expect them to read all the values at once, and our drivers
will work just fine in that case. Do you know of any exiting
application that does otherwise?
In the real world, one-time alarms don't matter. I don't get why chip
designers almost all did implement alarms that way. Their main use
right now is for us to write and debug drivers.
So, as much as I agree that there is a flaw in our design, I'd say
fixing it isn't worth the effort.
--
Jean Delvare
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (4 preceding siblings ...)
2006-09-26 19:15 ` Jean Delvare
@ 2006-09-26 20:18 ` Jim Cromie
2006-09-26 21:09 ` Jean Delvare
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Jim Cromie @ 2006-09-26 20:18 UTC (permalink / raw)
To: lm-sensors
Jean Delvare wrote:
> Hi Jim,
>
>
>> Looking again, I see a point of confusion at least, and a possible problem.
>> It may be one of interpretation, but is worth checking, and possibly
>> documenting.
>>
>> The *not-yet-read* property pertains to the scan done by update_device(),
>> since thats what reads all sensors the driver supports.
>> But its easy to misconstrue not-yet-read as a property on the individual
>> alarms.
>>
>> More importantly, any single read of any property will clear unrelated
>> alarms.
>>
>
> You are 100% correct. Things are as you describe, by driver design.
>
>
>> So, with the usual caveats (Ive done something wrong, immature code, etc)
>> I see a few possibilities:
>>
>> 1 - Document the fact - tell users not to do that.
>> this isnt unreasonable, and far simpler..
>>
>
> The user can't do anything. The ones we need to tell are the
> application authors. The end user looks at the temperatures in his nice
> GUI, and doesn't decide what is read and when. At best he/she can
> select the global refresh rate, and that's about it.
>
>
>> 2 - sensors-deamon locks the directory to preclude loss of alarms (is
>> this possible ? bad idea ?)
>>
>
> Which daemon?
>
>
sensorsd - not that it matters.
>> 3 - dunno
>>
>
> 4 - don't care:
>
> What's the point in spending efforts to make sure that the application
> will see the one-time alarm, while you have absolutely no way to know
> if the user will see it? Unless the application keeps the alarm on
> until the user clicks to confirm that he/she did see the alarm... This
> doesn't sound very friendly.
>
> All GUIs I know of do not present the alarm data at all, by the way.
> Could be because libsensors doesn't make their access very friendly at
> the moment... But it could also be because end users don't care - they
> can simply compare the measurement to the limits, or even judge the
> measurement by themselves. The alarm bits are redundant.
>
> Furthermore, I don't expect any application to actually do selective
> reads. I expect them to read all the values at once, and our drivers
> will work just fine in that case. Do you know of any exiting
> application that does otherwise?
>
>
no, but sensors is all Ive ever needed.
> In the real world, one-time alarms don't matter. I don't get why chip
> designers almost all did implement alarms that way. Their main use
> right now is for us to write and debug drivers.
>
> So, as much as I agree that there is a flaw in our design, I'd say
> fixing it isn't worth the effort.
>
>
Works for me :-)
But Ive added a couple lines to Doc/hwmon/sysfs-interface, on the
assumption that
app-writers will read it, where they now learn of libsensors, but might
miss this fact otherwise.
Signed-off-by: Jim Cromie <jim.cromie at gmail.com>
$ diffstat diff.doc-touches.20060926.140844
Documentation/hwmon/sysfs-interface | 8 ++++----
diff -ruNp -X dontdiff -X exclude-diffs linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface doc-touches/Documentation/hwmon/sysfs-interface
--- linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface 2006-09-07 16:09:40.000000000 -0600
+++ doc-touches/Documentation/hwmon/sysfs-interface 2006-09-26 14:04:19.000000000 -0600
@@ -23,6 +23,7 @@ voltages between 0 and +4V. Other voltag
range using external resistors. Since the values of these resistors
can change from motherboard to motherboard, the conversions cannot be
hard coded into the driver and have to be done in user space.
+Therefore, all sysfs values are fixed point numbers.
For this reason, even if we aim at a chip-independent libsensors, it will
still require a configuration file (e.g. /etc/sensors.conf) for proper
@@ -35,8 +36,9 @@ access this data in a simple and consist
will have to implement conversion, labeling and hiding of inputs. For
this reason, it is still not recommended to bypass the library.
-If you are developing a userspace application please send us feedback on
-this standard.
+If you are developing a userspace application please send us feedback
+on this standard. Note that applications are expected to read all the
+sysfs files at once, you may miss transient alarms otherwise.
Note that this standard isn't completely established yet, so it is subject
to changes. If you are writing a new hardware monitoring driver those
@@ -48,8 +50,6 @@ Each chip gets its own directory in the
find all sensor chips, it is easier to follow the device symlinks from
/sys/class/hwmon/hwmon*.
-All sysfs values are fixed point numbers.
-
There is only one value per file, unlike the older /proc specification.
The common scheme for files naming is: <type><number>_<item>. Usual
types for sensor chips are "in" (voltage), "temp" (temperature) and
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (5 preceding siblings ...)
2006-09-26 20:18 ` Jim Cromie
@ 2006-09-26 21:09 ` Jean Delvare
2006-09-26 22:47 ` Jim Cromie
2006-09-27 16:23 ` Jean Delvare
8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2006-09-26 21:09 UTC (permalink / raw)
To: lm-sensors
> > > 2 - sensors-deamon locks the directory to preclude loss of alarms (is
> > > this possible ? bad idea ?)
> >
> > Which daemon?
>
> sensorsd - not that it matters.
The only sensorsd I know of runs on OpenBSD. Did you mean sensord?
Sensord wasn't designed to be a central access point to the sensors
data, it's merely a resident monitoring application and nothing more.
> But Ive added a couple lines to Doc/hwmon/sysfs-interface, on the
> assumption that
> app-writers will read it, where they now learn of libsensors, but might
> miss this fact otherwise.
>
>
> Signed-off-by: Jim Cromie <jim.cromie at gmail.com>
>
> $ diffstat diff.doc-touches.20060926.140844
> Documentation/hwmon/sysfs-interface | 8 ++++----
>
>
> diff -ruNp -X dontdiff -X exclude-diffs linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface doc-touches/Documentation/hwmon/sysfs-interface
> --- linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface 2006-09-07 16:09:40.000000000 -0600
> +++ doc-touches/Documentation/hwmon/sysfs-interface 2006-09-26 14:04:19.000000000 -0600
> @@ -23,6 +23,7 @@ voltages between 0 and +4V. Other voltag
> range using external resistors. Since the values of these resistors
> can change from motherboard to motherboard, the conversions cannot be
> hard coded into the driver and have to be done in user space.
> +Therefore, all sysfs values are fixed point numbers.
I see no cause-to-consequence relation here, so why the "therefore"?
What problem are you trying to address by moving this sentence around?
> For this reason, even if we aim at a chip-independent libsensors, it will
> still require a configuration file (e.g. /etc/sensors.conf) for proper
> @@ -35,8 +36,9 @@ access this data in a simple and consist
> will have to implement conversion, labeling and hiding of inputs. For
> this reason, it is still not recommended to bypass the library.
>
> -If you are developing a userspace application please send us feedback on
> -this standard.
> +If you are developing a userspace application please send us feedback
> +on this standard. Note that applications are expected to read all the
> +sysfs files at once, you may miss transient alarms otherwise.
Or you could leave the "on" where it was, so that the diff doesn't look
bigger than it really is?
You are putting the things in the wrong order, I think. The
applications are not expected to read all the sysfs values at once, it
just happens to be what they all do at the moment. And nothing really
wrong will happen if they don't. The different behavior of transient
alarms is a minor annoyance, because, as I explained earlier, nobody
really cares about transient alarms. In fact, people may even be
_happy_ to miss them. So why frighten them with something we don't
expect to bother them at all?
> Note that this standard isn't completely established yet, so it is subject
> to changes. If you are writing a new hardware monitoring driver those
> @@ -48,8 +50,6 @@ Each chip gets its own directory in the
> find all sensor chips, it is easier to follow the device symlinks from
> /sys/class/hwmon/hwmon*.
>
> -All sysfs values are fixed point numbers.
> -
> There is only one value per file, unlike the older /proc specification.
> The common scheme for files naming is: <type><number>_<item>. Usual
> types for sensor chips are "in" (voltage), "temp" (temperature) and
--
Jean Delvare
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (6 preceding siblings ...)
2006-09-26 21:09 ` Jean Delvare
@ 2006-09-26 22:47 ` Jim Cromie
2006-09-27 16:23 ` Jean Delvare
8 siblings, 0 replies; 10+ messages in thread
From: Jim Cromie @ 2006-09-26 22:47 UTC (permalink / raw)
To: lm-sensors
Jean Delvare wrote:
>>>> 2 - sensors-deamon locks the directory to preclude loss of alarms (is
>>>> this possible ? bad idea ?)
>>>>
>>> Which daemon?
>>>
>> sensorsd - not that it matters.
>>
>
> The only sensorsd I know of runs on OpenBSD. Did you mean sensord?
> Sensord wasn't designed to be a central access point to the sensors
> data, it's merely a resident monitoring application and nothing more.
>
>
>> But Ive added a couple lines to Doc/hwmon/sysfs-interface, on the
>> assumption that
>> app-writers will read it, where they now learn of libsensors, but might
>> miss this fact otherwise.
>>
>>
>> Signed-off-by: Jim Cromie <jim.cromie at gmail.com>
>>
>> $ diffstat diff.doc-touches.20060926.140844
>> Documentation/hwmon/sysfs-interface | 8 ++++----
>>
>>
>> diff -ruNp -X dontdiff -X exclude-diffs linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface doc-touches/Documentation/hwmon/sysfs-interface
>> --- linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface 2006-09-07 16:09:40.000000000 -0600
>> +++ doc-touches/Documentation/hwmon/sysfs-interface 2006-09-26 14:04:19.000000000 -0600
>> @@ -23,6 +23,7 @@ voltages between 0 and +4V. Other voltag
>> range using external resistors. Since the values of these resistors
>> can change from motherboard to motherboard, the conversions cannot be
>> hard coded into the driver and have to be done in user space.
>> +Therefore, all sysfs values are fixed point numbers.
>>
>
> I see no cause-to-consequence relation here, so why the "therefore"?
> What problem are you trying to address by moving this sentence around?
>
>
sure, its a little white lie. I wondered if it would draw comment.
Its easier than explaining why the kernel doesnt allow FP.
Let me turn it around. Why do you bother to say it at all ?
Motivated readers would just try it, then either google to find out
why its disallowed (I have), or <gasp> ask on some ML.
Besides, the whole paragraph is sufficient reason, to move the sentence,
even if FP were allowed.
>> For this reason, even if we aim at a chip-independent libsensors, it will
>> still require a configuration file (e.g. /etc/sensors.conf) for proper
>> @@ -35,8 +36,9 @@ access this data in a simple and consist
>> will have to implement conversion, labeling and hiding of inputs. For
>> this reason, it is still not recommended to bypass the library.
>>
>> -If you are developing a userspace application please send us feedback on
>> -this standard.
>> +If you are developing a userspace application please send us feedback
>> +on this standard. Note that applications are expected to read all the
>> +sysfs files at once, you may miss transient alarms otherwise.
>>
>
> Or you could leave the "on" where it was, so that the diff doesn't look
> bigger than it really is?
>
>
emacs autowrap. But thats not really the issue is it ?
> You are putting the things in the wrong order, I think. The
> applications are not expected to read all the sysfs values at once, it
> just happens to be what they all do at the moment. And nothing really
> wrong will happen if they don't. The different behavior of transient
> alarms is a minor annoyance, because, as I explained earlier, nobody
> really cares about transient alarms. In fact, people may even be
> _happy_ to miss them. So why frighten them with something we don't
> expect to bother them at all?
>
>
ignorance != apathy
And if we dont care about alarms, why bother to split them out, 1 per
sensor ?
>> Note that this standard isn't completely established yet, so it is subject
>> to changes. If you are writing a new hardware monitoring driver those
>> @@ -48,8 +50,6 @@ Each chip gets its own directory in the
>> find all sensor chips, it is easier to follow the device symlinks from
>> /sys/class/hwmon/hwmon*.
>>
>> -All sysfs values are fixed point numbers.
>> -
>> There is only one value per file, unlike the older /proc specification.
>> The common scheme for files naming is: <type><number>_<item>. Usual
>> types for sensor chips are "in" (voltage), "temp" (temperature) and
>>
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread* [lm-sensors] issue with clearing alarms
2006-09-09 19:16 [lm-sensors] issue with clearing alarms Jim Cromie
` (7 preceding siblings ...)
2006-09-26 22:47 ` Jim Cromie
@ 2006-09-27 16:23 ` Jean Delvare
8 siblings, 0 replies; 10+ messages in thread
From: Jean Delvare @ 2006-09-27 16:23 UTC (permalink / raw)
To: lm-sensors
Hi Jim,
> > > --- linux-2.6.18-rc6-mm2-sk/Documentation/hwmon/sysfs-interface 2006-09-07 16:09:40.000000000 -0600
> > > +++ doc-touches/Documentation/hwmon/sysfs-interface 2006-09-26 14:04:19.000000000 -0600
> > > @@ -23,6 +23,7 @@ voltages between 0 and +4V. Other voltag
> > > range using external resistors. Since the values of these resistors
> > > can change from motherboard to motherboard, the conversions cannot be
> > > hard coded into the driver and have to be done in user space.
> > > +Therefore, all sysfs values are fixed point numbers.
> >
> > I see no cause-to-consequence relation here, so why the "therefore"?
> > What problem are you trying to address by moving this sentence around?
>
> sure, its a little white lie. I wondered if it would draw comment.
> Its easier than explaining why the kernel doesnt allow FP.
It's easier, and irrelevant. We just don't need floating point here.
> Let me turn it around. Why do you bother to say it at all ?
Because it's true, and relevant. This is an important design decision,
and also a difference compared to the Linux 2.4 interface. Well, 2.4
used fixed point as well, but exported the values to procfs as real
numbers, as opposed to integers as we do now.
> Motivated readers would just try it, then either google to find out
> why its disallowed (I have), or <gasp> ask on some ML.
> Besides, the whole paragraph is sufficient reason, to move the sentence,
> even if FP were allowed.
I don't follow you here. You seem to agree that there is no real
relation between the paragraph above, and the fixed point sentence, yet
you still want to move the two next to each other?
> > > For this reason, even if we aim at a chip-independent libsensors, it will
> > > still require a configuration file (e.g. /etc/sensors.conf) for proper
> > > @@ -35,8 +36,9 @@ access this data in a simple and consist
> > > will have to implement conversion, labeling and hiding of inputs. For
> > > this reason, it is still not recommended to bypass the library.
> > >
> > > -If you are developing a userspace application please send us feedback on
> > > -this standard.
> > > +If you are developing a userspace application please send us feedback
> > > +on this standard. Note that applications are expected to read all the
> > > +sysfs files at once, you may miss transient alarms otherwise.
> >
> > Or you could leave the "on" where it was, so that the diff doesn't look
> > bigger than it really is?
>
> emacs autowrap. But thats not really the issue is it ?
It is. If your text editor reformats the lines as it sees fit, you
can't really work with me. But I guess you can actually reconfigure it
not to misbehave that way.
> > You are putting the things in the wrong order, I think. The
> > applications are not expected to read all the sysfs values at once, it
> > just happens to be what they all do at the moment. And nothing really
> > wrong will happen if they don't. The different behavior of transient
> > alarms is a minor annoyance, because, as I explained earlier, nobody
> > really cares about transient alarms. In fact, people may even be
> > _happy_ to miss them. So why frighten them with something we don't
> > expect to bother them at all?
>
> ignorance != apathy
Certainly, and your point is?
> And if we dont care about alarms, why bother to split them out, 1 per
> sensor ?
My point is essentially that transient alarms don't matter. Alarms by
themselves, are somewhat more important. Their redundancy helps us
debug the drivers, and we can also use them to quickly understand
configuration issues on user systems, for example negative voltages
with their limits swapped, or the reason why the system is beeping,
etc.
More importantly, we have been providing this data to the applications
for 8 years now, so just dropping it is likely to cause some complaints
if anyone is really interested in them. I would be happy myself without
the alarm bits, and this would get around a lot of work in the next
months as well, so don't tempt me please ;)
--
Jean Delvare
^ permalink raw reply [flat|nested] 10+ messages in thread