Re: [PATCH v3] k10temp: temperature sensor for AMD Family 10h/11hCPUs

From: Clemens Ladisch
Date: Wed Nov 25 2009 - 04:51:52 EST


Jean Delvare wrote:
> On Tue, 24 Nov 2009 15:09:57 +0100, Clemens Ladisch wrote:
> > This means that one of the already existing limit values must be the
> > reference base, so we'd need just a mechanism to specify which of them
> > is it, i.e., "temp1_relative_base: max". If we'd have
> > "temp1_relative: 70000", the application would have to search among the
> > limit values for one with the same value.
>
> I fail to see why the application would care about this at all. When in
> relative mode, all other values would be offset by the temp#_relative
> value. But that value itself would not be displayed (it has no physical
> value, otherwise we wouldn't be in absolute mode, would we?)
> ...
>
> > temp1_relative: true
>
> This is taking flexibility away from us, for no benefit that I can see.
> Am I missing something?

The application has to display something like "24 ÂC below the limit",
so how should it know that the 70ÂC should be named "the limit"?

To use an example, my CPU has these entries like these:
temp1_input: 29875
temp1_max: 70000
temp1_crit: 95000
temp1_crit_hyst: 92500

How should these entries be displayed?
(we know that: "40.1 ÂC below limit", "limit", "25 ÂC above limit" etc.)

But what algorithm should the application (or libsensors) use to create
those labels? If we have "temp1_relative: 70000", then this happens to
be the "max" limit; but what if some CPU vendor decides to define, e.g.,
the value 0 as the "normal" operating temperatire, so that the entries
would look like this:
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.

"Relative" means that any value is meaningful only in comparison with
other values/limits, so it does not make sense to declare one point on
the scale as base.

> 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.


Best regards,
Clemens
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/