All of lore.kernel.org
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Jean Delvare <khali@linux-fr.org>
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org
Subject: Re: [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD
Date: Fri, 27 Nov 2009 13:03:29 +0000	[thread overview]
Message-ID: <4B0FCE21.9070007@ladisch.de> (raw)
In-Reply-To: <20091126214429.6ac22d3f@hyperion.delvare>

Jean Delvare wrote:
> On Wed, 25 Nov 2009 10:51:38 +0100, Clemens Ladisch wrote:
> > temp1_input: -1000
> > temp1_max: 40000
> > temp1_relative: 0
> > Should the values be labeled as "1 °C below normal" and "40 °C above
> > normal", and how should the application know that 0 is to be labeled
> > "normal"?  It might make more sense to display the temperature just as
> > "41 °C below max", in which case the actual value of temp1_relative is
> > not used at all.
> 
> Except that there may be no temp1_max, just a temperature value
> relative to the "normal" operating point of the CPU. In that case we
> can't fallback to the max limit.
> 
> Even your initial proposal doesn't work there yet: the hwmon interface
> has no standard name for "normal operating temperature", so we can't put
> that name in temp#_relative. [...]
> If the base has a meaning (normal operating temperature, or critical
> temperature, etc.) we have to let the user know somehow.

I chose that example because "normal" does not exist; and it's a bad
example because "normal" actually has a meaning.

Better take the AMD CPUs: The base of all relative values is zero (by
definition), _not_ 70000, and the meaning of that base is just "70 °C
below the temperature at which the processor wants 100% cooling".  This
base value is meaningless for any monitoring purposes.

If any point on the scale has a meaning, it should be reported with some
temp#_whatever file.  However, the base itself does not necessarily have
any meaning.

As long as we have some corresponding _max or _crit limit that can be
used for comparisons, we do not need a base value.  Only if there is
no known predefined limit do we need a temp#_relative value.

> Or maybe create a new label (temp#_relative_label or similar) but I'm
> not sure how we would integrate this into libsensors and applications.
> In particular I am worried about translation issues if we make the
> drivers too verbose.

All known CPUs with relative temperature scale also have known _max
limits, and I don't think that a CPU with relative scale and both
unknown _max and _crit will ever be designed.  In other words,
temp#_relative* is not needed at the moment.  I think we should not
try to define how the semantics of such an unknown scale can be
described.

> > > Additionally it wouldn't fit in libsensors as it exists today.
> > 
> > Then the best bet would probably be an entry like temp#_unit, with
> > 0 = absolute °C (default); 1 = relative °C or °K; other values
> > "unknown".  Even if some silly scale is introduced later, applications
> > that read this entry then know that they must not display a unit like °C
> > for unknown unit specifications.
> 
> This could work, yes. Note that current drivers and libsensors don't
> have/know about this file yet, and they generally use an absolute °C
> scale. So the absence of temp#_unit file would be interpreted exactly
> as if the file was there and contained value 0.
> 
> (I'd rather name that file temp#_scale - but that's an implementation
> detail.)

Like this?

--- a/Documentation/hwmon/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
@@ -314,6 +314,19 @@ temp_reset_history
 		Reset temp_lowest and temp_highest for all sensors
 		WO
 
+temp[1-*]_scale	Temperature scale type.
+		Integer
+		RO
+		0: millidegrees Celsius (default if no _scale entry)
+		1: relative millidegrees Celsius; see below
+		2: millivolts; see below
+		other values: unknown
+		When scale=1 (relative), the temperature value 0 does not
+		correspond to zero degrees Celsius but to some unknown
+		temperature. In this case, temperate values should not be
+		interpreted or displayed as absolute values and make sense
+		only when compared to other values of the same channel.
+
 Some chips measure temperature using external thermistors and an ADC, and
 report the temperature measurement as a voltage. Converting this voltage
 back to a temperature (or the other way around for limits) requires


Hmm, which drivers use millivolt temperatures?


Best regards,
Clemens

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

WARNING: multiple messages have this Message-ID (diff)
From: Clemens Ladisch <clemens@ladisch.de>
To: Jean Delvare <khali@linux-fr.org>
Cc: linux-kernel@vger.kernel.org, lm-sensors@lm-sensors.org
Subject: Re: [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs
Date: Fri, 27 Nov 2009 14:03:29 +0100	[thread overview]
Message-ID: <4B0FCE21.9070007@ladisch.de> (raw)
In-Reply-To: <20091126214429.6ac22d3f@hyperion.delvare>

Jean Delvare wrote:
> On Wed, 25 Nov 2009 10:51:38 +0100, Clemens Ladisch wrote:
> > temp1_input: -1000
> > temp1_max: 40000
> > temp1_relative: 0
> > Should the values be labeled as "1 °C below normal" and "40 °C above
> > normal", and how should the application know that 0 is to be labeled
> > "normal"?  It might make more sense to display the temperature just as
> > "41 °C below max", in which case the actual value of temp1_relative is
> > not used at all.
> 
> Except that there may be no temp1_max, just a temperature value
> relative to the "normal" operating point of the CPU. In that case we
> can't fallback to the max limit.
> 
> Even your initial proposal doesn't work there yet: the hwmon interface
> has no standard name for "normal operating temperature", so we can't put
> that name in temp#_relative. [...]
> If the base has a meaning (normal operating temperature, or critical
> temperature, etc.) we have to let the user know somehow.

I chose that example because "normal" does not exist; and it's a bad
example because "normal" actually has a meaning.

Better take the AMD CPUs: The base of all relative values is zero (by
definition), _not_ 70000, and the meaning of that base is just "70 °C
below the temperature at which the processor wants 100% cooling".  This
base value is meaningless for any monitoring purposes.

If any point on the scale has a meaning, it should be reported with some
temp#_whatever file.  However, the base itself does not necessarily have
any meaning.

As long as we have some corresponding _max or _crit limit that can be
used for comparisons, we do not need a base value.  Only if there is
no known predefined limit do we need a temp#_relative value.

> Or maybe create a new label (temp#_relative_label or similar) but I'm
> not sure how we would integrate this into libsensors and applications.
> In particular I am worried about translation issues if we make the
> drivers too verbose.

All known CPUs with relative temperature scale also have known _max
limits, and I don't think that a CPU with relative scale and both
unknown _max and _crit will ever be designed.  In other words,
temp#_relative* is not needed at the moment.  I think we should not
try to define how the semantics of such an unknown scale can be
described.

> > > Additionally it wouldn't fit in libsensors as it exists today.
> > 
> > Then the best bet would probably be an entry like temp#_unit, with
> > 0 = absolute °C (default); 1 = relative °C or °K; other values
> > "unknown".  Even if some silly scale is introduced later, applications
> > that read this entry then know that they must not display a unit like °C
> > for unknown unit specifications.
> 
> This could work, yes. Note that current drivers and libsensors don't
> have/know about this file yet, and they generally use an absolute °C
> scale. So the absence of temp#_unit file would be interpreted exactly
> as if the file was there and contained value 0.
> 
> (I'd rather name that file temp#_scale - but that's an implementation
> detail.)

Like this?

--- a/Documentation/hwmon/sysfs-interface
+++ b/Documentation/hwmon/sysfs-interface
@@ -314,6 +314,19 @@ temp_reset_history
 		Reset temp_lowest and temp_highest for all sensors
 		WO
 
+temp[1-*]_scale	Temperature scale type.
+		Integer
+		RO
+		0: millidegrees Celsius (default if no _scale entry)
+		1: relative millidegrees Celsius; see below
+		2: millivolts; see below
+		other values: unknown
+		When scale=1 (relative), the temperature value 0 does not
+		correspond to zero degrees Celsius but to some unknown
+		temperature. In this case, temperate values should not be
+		interpreted or displayed as absolute values and make sense
+		only when compared to other values of the same channel.
+
 Some chips measure temperature using external thermistors and an ADC, and
 report the temperature measurement as a voltage. Converting this voltage
 back to a temperature (or the other way around for limits) requires


Hmm, which drivers use millivolt temperatures?


Best regards,
Clemens

  reply	other threads:[~2009-11-27 13:03 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-10  8:08 [lm-sensors] [PATCH] k10temp: temperature sensor for AMD Family Clemens Ladisch
2009-11-20  8:15 ` Clemens Ladisch
2009-11-20  8:15   ` [PATCH] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-20 10:22   ` [lm-sensors] [PATCH] k10temp: temperature sensor for AMD Family Serge Belyshev
2009-11-20 10:22     ` [PATCH] k10temp: temperature sensor for AMD Family 10h/11h CPUs Serge Belyshev
2009-11-20 10:44     ` [lm-sensors] [PATCH] k10temp: temperature sensor for AMD Family Jean Delvare
2009-11-20 10:44       ` [lm-sensors] [PATCH] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-20 10:47     ` [lm-sensors] [PATCH v2] k10temp: temperature sensor for AMD Family Clemens Ladisch
2009-11-20 10:47       ` [PATCH v2] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-20 11:30       ` [lm-sensors] [PATCH v2] k10temp: temperature sensor for AMD Jean Delvare
2009-11-20 11:30         ` [lm-sensors] [PATCH v2] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-20 11:56         ` [lm-sensors] [PATCH v2] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-20 11:56           ` [PATCH v2] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-20 12:18           ` [lm-sensors] [PATCH v2] k10temp: temperature sensor for AMD Jean Delvare
2009-11-20 12:18             ` [PATCH v2] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-23  7:45             ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Family Clemens Ladisch
2009-11-23  7:45               ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-23 13:51               ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2009-11-23 13:51                 ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-23 15:29                 ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-23 15:29                   ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-23 19:05                   ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2009-11-23 19:05                     ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-24  8:43                     ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-24  8:43                       ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-24 13:26                       ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2009-11-24 13:26                         ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-24 14:09                         ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-24 14:09                           ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-24 20:11                           ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2009-11-24 20:11                             ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-25  9:51                             ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-25  9:51                               ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-26 20:44                               ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2009-11-26 20:44                                 ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-27 13:03                                 ` Clemens Ladisch [this message]
2009-11-27 13:03                                   ` Clemens Ladisch
2010-01-10 14:45                                   ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2010-01-10 14:45                                     ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2010-01-15  9:57                                     ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Clemens Ladisch
2010-01-15  9:57                                       ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2010-01-15 13:31                                       ` [lm-sensors] [PATCH v3] k10temp: temperature sensor for AMD Jean Delvare
2010-01-15 13:31                                         ` [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-24  8:43                     ` [lm-sensors] [PATCH v4] k10temp: temperature sensor for AMD Family Clemens Ladisch
2009-11-24  8:43                       ` [PATCH v4] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-25 19:45                       ` [lm-sensors] [PATCH v4] k10temp: temperature sensor for AMD Andrew Morton
2009-11-25 19:45                         ` [PATCH v4] k10temp: temperature sensor for AMD Family 10h/11h CPUs Andrew Morton
2009-11-26  7:46                         ` [lm-sensors] [PATCH v4] k10temp: temperature sensor for AMD Clemens Ladisch
2009-11-26  7:46                           ` [PATCH v4] k10temp: temperature sensor for AMD Family 10h/11h CPUs Clemens Ladisch
2009-11-27 15:43                       ` [lm-sensors] [PATCH v4] k10temp: temperature sensor for AMD Jean Delvare
2009-11-27 15:43                         ` [PATCH v4] k10temp: temperature sensor for AMD Family 10h/11h CPUs Jean Delvare
2009-11-28  7:48                         ` [lm-sensors] [PATCH v4] k10temp: temperature sensor for AMD Andrew Morton
2009-11-28  7:48                           ` [PATCH v4] k10temp: temperature sensor for AMD Family 10h/11h CPUs Andrew Morton

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=4B0FCE21.9070007@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=khali@linux-fr.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.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.