From: "Pali Rohár" <pali.rohar@gmail.com>
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] [PATCH] sensord: do not fail if some sensor does not return data
Date: Sat, 17 May 2014 20:02:12 +0000 [thread overview]
Message-ID: <201405172202.12672@pali> (raw)
[-- Attachment #1.1.1: Type: Text/Plain, Size: 1456 bytes --]
Hello,
I see very annoying bug in sensord. When some hwmon driver
returns -EINVAL (for any reason), sensord daemon will stop
reading next sensors values. This means if first hwmon device
fail to return value, sensord daemon will not log anything.
Returning -EINVAL from kernel driver is normal (e.g. when graphic
card with has internal temperature sensor is turned off) and
sensord should not fail on this.
Program sensors already handling this problem and will print N/A
if there is reading error.
I'm sending simple patch which just report NaN value when kernel
report error. And also sensord will continue to reading next
hwmon interfaces.
Without this patch I see only these lines logged:
sensord: Chip: radeon-pci-0100
sensord: Adapter: PCI adapter
sensord: Error getting sensor data: radeon/#0: Can't read
sensord: sensor read error (-1)
And all other sensors are ignored and nothing more is logged.
After my patch all hwmon sensors data are logged:
sensord: Chip: radeon-pci-0100
sensord: Adapter: PCI adapter
sensord: temp1: nan C
sensord: Chip: i8k-virtual-0
sensord: Adapter: Virtual device
sensord: Left Fan: 2685 RPM
sensord: CPU: 49.0 C
sensord: temp2: 55.0 C
sensord: temp3: 39.0 C
sensord: Chip: coretemp-isa-0000
sensord: Adapter: ISA adapter
sensord: Physical id 0: 50.0 C
sensord: Core 0: 47.0 C
sensord: Core 1: 50.0 C
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #1.1.2: sensord_nan.patch --]
[-- Type: text/x-patch, Size: 768 bytes --]
--- lm-sensors-3.3.1/prog/sensord/sense.c.orig 2014-05-17 21:14:21.000000000 +0200
+++ lm-sensors-3.3.1/prog/sensord/sense.c 2014-05-17 21:45:27.677299361 +0200
@@ -93,11 +93,14 @@ static int get_features(const sensors_ch
ret = sensors_get_value(chip, feature->dataNumbers[i],
val + i);
if (ret) {
+#if 0
sensorLog(LOG_ERR,
"Error getting sensor data: %s/#%d: %s",
chip->prefix, feature->dataNumbers[i],
sensors_strerror(ret));
return -1;
+#endif
+ val[i] = nan("");
}
}
@@ -168,8 +171,10 @@ static int doKnownChip(const sensors_chi
for (i = 0; features[i].format; i++) {
ret = do_features(chip, features + i, action);
+#if 0
if (ret == -1)
break;
+#endif
}
return ret;
[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 153 bytes --]
_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
next reply other threads:[~2014-05-17 20:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-17 20:02 Pali Rohár [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-06-09 16:23 [lm-sensors] [PATCH] sensord: do not fail if some sensor does not return data Pali Rohár
2014-10-28 14:54 Pali Rohár
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201405172202.12672@pali \
--to=pali.rohar@gmail.com \
--cc=lm-sensors@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.