From: Guenter Roeck <linux@roeck-us.net>
To: "Cédric Le Goater" <clg@fr.ibm.com>, lm-sensors@lm-sensors.org
Cc: Stewart Smith <stewart@linux.vnet.ibm.com>,
Neelesh Gupta <neelegup@linux.vnet.ibm.com>,
skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org,
Jean Delvare <jdelvare@suse.de>
Subject: Re: [lm-sensors] [PATCH v3] hwmon: (ibmpowernv) pretty print labels
Date: Wed, 08 Apr 2015 13:26:50 +0000 [thread overview]
Message-ID: <55252C9A.4050505@roeck-us.net> (raw)
In-Reply-To: <1428476427-23311-1-git-send-email-clg@fr.ibm.com>
T24gMDQvMDgvMjAxNSAxMjowMCBBTSwgQ8OpZHJpYyBMZSBHb2F0ZXIgd3JvdGU6Cj4gVGhlIG5l
dyBPUEFMIGRldmljZSB0cmVlIGFkZHMgYSBmZXcgcHJvcGVydGllcyB3aGljaCBjYW4gYmUgdXNl
ZCB0byBhZGQKPiBleHRyYSBpbmZvcm1hdGlvbiBvbiB0aGUgc2Vuc29yIGxhYmVsLgo+Cj4gSW4g
dGhlIGNhc2Ugb2YgYSBjcHUgY29yZSBzZW5zb3IsIHRoZSBmaXJtd2FyZSBleHBvc2VzIHRoZSBw
aHlzaWNhbAo+IGlkZW50aWZpZXIgb2YgdGhlIGNvcmUgaW4gdGhlICJpYm0scGlyIiBwcm9wZXJ0
eS4gVGhlIGRyaXZlcgo+IHRyYW5zbGF0ZXMgdGhpcyBpZGVudGlmaWVyIGluIGEgbGludXggY3B1
IG51bWJlciBhbmQgcHJpbnRzIG91dCBhCj4gcmFuZ2UgY29ycmVzcG9uZGluZyB0byB0aGUgaGFy
ZHdhcmUgdGhyZWFkcyBvZiB0aGUgY29yZSAoYXMgdGhleQo+IHNoYXJlIHRoZSBzYW1lIHNlbnNv
cikuCj4KPiBUaGUgbnVtYmVyaW5nIGdpdmVzIGEgaGludCBvbiB0aGUgbG9jYWxpemF0aW9uIG9m
IHRoZSBjb3JlIGluIHRoZQo+IHN5c3RlbSAod2hpY2ggc29ja2V0LCB3aGljaCBjaGlwKS4KPgo+
IFNpZ25lZC1vZmYtYnk6IEPDqWRyaWMgTGUgR29hdGVyIDxjbGdAZnIuaWJtLmNvbT4KPiAtLS0K
Pgo+ICAgQ2hhbmdlcyBzaW5jZSB2MjoKPgo+ICAgLSBmaXggYm9ndXMgbG9naWNhbCBjcHUgcmV0
cmlldmFsCj4gICAtIHVzZSAndGhyZWFkc19wZXJfY29yZScgdG8gcHJpbnQgb3V0IGNwdSByYW5n
ZQo+Cj4gICBDaGFuZ2VzIHNpbmNlIHYxOgo+Cj4gICAtIGNoZWNrIGNwdSB2YWxpZGl0eSBiZWZv
cmUgcHJpbnRpbmcgb3V0IHRoZSBhdHRyaWJ1dGUgbGFiZWwuCj4gICAgIGlmIGludmFsaWQsIHVz
ZSBhICJwaHkiIHByZWZpeCB0byBkaXN0aW5ndWlzaCBhIGxpbnV4IGNwdQo+ICAgICBudW1iZXIg
ZnJvbSBhIHBoeXNpY2FsIGNwdSBudW1iZXIuCj4KPiAgIGRyaXZlcnMvaHdtb24vaWJtcG93ZXJu
di5jIHwgICA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g
ICAxIGZpbGUgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKQo+Cj4gSW5kZXg6IGxpbnV4LmdpdC9k
cml2ZXJzL2h3bW9uL2libXBvd2VybnYuYwo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAtLS0gbGludXguZ2l0Lm9y
aWcvZHJpdmVycy9od21vbi9pYm1wb3dlcm52LmMKPiArKysgbGludXguZ2l0L2RyaXZlcnMvaHdt
b24vaWJtcG93ZXJudi5jCj4gQEAgLTMwLDYgKzMwLDcgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9w
bGF0Zm9ybV9kZXZpY2UuaD4KPiAgICNpbmNsdWRlIDxhc20vb3BhbC5oPgo+ICAgI2luY2x1ZGUg
PGxpbnV4L2Vyci5oPgo+ICsjaW5jbHVkZSA8YXNtL2NwdXRocmVhZHMuaD4KPgo+ICAgI2RlZmlu
ZSBNQVhfQVRUUl9MRU4JMzIKPiAgICNkZWZpbmUgTUFYX0xBQkVMX0xFTgk2NAo+IEBAIC0xMTAs
MTIgKzExMSw1NCBAQCBzdGF0aWMgc3NpemVfdCBzaG93X2xhYmVsKHN0cnVjdCBkZXZpY2UKPiAg
IAlyZXR1cm4gc3ByaW50ZihidWYsICIlc1xuIiwgc2RhdGEtPmxhYmVsKTsKPiAgIH0KPgo+ICtz
dGF0aWMgaW50IF9faW5pdCBnZXRfbG9naWNhbF9jcHUodW5zaWduZWQgaW50IGh3Y3B1KQo+ICt7
Cj4gKwlpbnQgY3B1Owo+ICsKPiArCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCj4gKwkJaWYg
KGdldF9oYXJkX3NtcF9wcm9jZXNzb3JfaWQoY3B1KSA9PSBod2NwdSkKPiArCQkJcmV0dXJuIGNw
dTsKPiArCj4gKwlwcl9lcnIoIiVzOiBjb3VsZCBub3QgZmluZCBhIGNwdSB3aXRoIHBoeXNpY2Fs
IGlkIDB4JXhcbiIsCj4gKwkgICAgICAgX19mdW5jX18sIGh3Y3B1KTsKCkkgbGlrZSBtb3Zpbmcg
dGhpcyBpbnRvIGEgZnVuY3Rpb24sIGJ1dCBJIHJlYWxseSBkaXNsaWtlIHRoaXMgZXJyb3IKbWVz
c2FnZS4gSWYgdGhlIGRldmljZXRyZWUgZGF0YSBpcyB3cm9uZy9iYWQsIHRoZSBsb2cgYW5kIHRo
ZSBjb25zb2xlCndpbGwgYmUgY2xvZ2dlZCB3aXRoIHRoYXQgbWVzc2FnZS4gQW5kIHRoZSB1c2Vy
IHdpbGwgbm90IGJlIGFibGUKdG8gZG8gYW55dGhpbmcgYWJvdXQgaXQuCgpHdWVudGVyCgo+ICsJ
cmV0dXJuIC1FTk9FTlQ7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBfX2luaXQgbWFrZV9zZW5z
b3JfbGFiZWwoc3RydWN0IGRldmljZV9ub2RlICpucCwKPiAgIAkJICAgIHN0cnVjdCBzZW5zb3Jf
ZGF0YSAqc2RhdGEsIGNvbnN0IGNoYXIgKmxhYmVsKQo+ICAgewo+ICsJdTMyIGlkOwo+ICAgCXNp
emVfdCBuOwo+Cj4gICAJbiA9IHNucHJpbnRmKHNkYXRhLT5sYWJlbCwgc2l6ZW9mKHNkYXRhLT5s
YWJlbCksICIlcyIsIGxhYmVsKTsKPiArCj4gKwkvKgo+ICsJICogQ29yZSB0ZW1wIHByZXR0eSBw
cmludAo+ICsJICovCj4gKwlpZiAoIW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAiaWJtLHBpciIs
ICZpZCkpIHsKPiArCQlpbnQgY3B1aWQgPSBnZXRfbG9naWNhbF9jcHUoaWQpOwo+ICsKPiArCQlp
ZiAoY3B1aWQgPj0gMCkKPiArCQkJLyoKPiArCQkJICogVGhlIGRpZ2l0YWwgdGhlcm1hbCBzZW5z
b3JzIGFyZSBhc3NvY2lhdGVkCj4gKwkJCSAqIHdpdGggYSBjb3JlLiBMZXQncyBwcmludCBvdXQg
dGhlIHJhbmdlIG9mCj4gKwkJCSAqIGNwdSBpZHMgY29ycmVzcG9uZGluZyB0byB0aGUgaGFyZHdh
cmUKPiArCQkJICogdGhyZWFkcyBvZiB0aGUgY29yZS4KPiArCQkJICovCj4gKwkJCW4gKz0gc25w
cmludGYoc2RhdGEtPmxhYmVsICsgbiwKPiArCQkJCSAgICAgIHNpemVvZihzZGF0YS0+bGFiZWwp
IC0gbiwgIiAlZC0lZCIsCj4gKwkJCQkgICAgICBjcHVpZCwgY3B1aWQgKyB0aHJlYWRzX3Blcl9j
b3JlIC0gMSk7Cj4gKwkJZWxzZQo+ICsJCQluICs9IHNucHJpbnRmKHNkYXRhLT5sYWJlbCArIG4s
Cj4gKwkJCQkgICAgICBzaXplb2Yoc2RhdGEtPmxhYmVsKSAtIG4sICIgcGh5JWQiLCBpZCk7Cj4g
Kwl9Cj4gKwo+ICsJLyoKPiArCSAqIE1lbWJ1ZmZlciBwcmV0dHkgcHJpbnQKPiArCSAqLwo+ICsJ
aWYgKCFvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImlibSxjaGlwLWlkIiwgJmlkKSkKPiArCQlu
ICs9IHNucHJpbnRmKHNkYXRhLT5sYWJlbCArIG4sIHNpemVvZihzZGF0YS0+bGFiZWwpIC0gbiwK
PiArCQkJICAgICAgIiAlZCIsIGlkICYgMHhmZmZmKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBn
ZXRfc2Vuc29yX2luZGV4X2F0dHIoY29uc3QgY2hhciAqbmFtZSwgdTMyICppbmRleCwKPgo+CgoK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29y
cyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0t
c2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz
WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux@roeck-us.net>
To: "Cédric Le Goater" <clg@fr.ibm.com>, lm-sensors@lm-sensors.org
Cc: Stewart Smith <stewart@linux.vnet.ibm.com>,
Neelesh Gupta <neelegup@linux.vnet.ibm.com>,
skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org,
Jean Delvare <jdelvare@suse.de>
Subject: Re: [PATCH v3] hwmon: (ibmpowernv) pretty print labels
Date: Wed, 08 Apr 2015 06:26:50 -0700 [thread overview]
Message-ID: <55252C9A.4050505@roeck-us.net> (raw)
In-Reply-To: <1428476427-23311-1-git-send-email-clg@fr.ibm.com>
On 04/08/2015 12:00 AM, Cédric Le Goater wrote:
> The new OPAL device tree adds a few properties which can be used to add
> extra information on the sensor label.
>
> In the case of a cpu core sensor, the firmware exposes the physical
> identifier of the core in the "ibm,pir" property. The driver
> translates this identifier in a linux cpu number and prints out a
> range corresponding to the hardware threads of the core (as they
> share the same sensor).
>
> The numbering gives a hint on the localization of the core in the
> system (which socket, which chip).
>
> Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
> ---
>
> Changes since v2:
>
> - fix bogus logical cpu retrieval
> - use 'threads_per_core' to print out cpu range
>
> Changes since v1:
>
> - check cpu validity before printing out the attribute label.
> if invalid, use a "phy" prefix to distinguish a linux cpu
> number from a physical cpu number.
>
> drivers/hwmon/ibmpowernv.c | 43 +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 43 insertions(+)
>
> Index: linux.git/drivers/hwmon/ibmpowernv.c
> ===================================================================
> --- linux.git.orig/drivers/hwmon/ibmpowernv.c
> +++ linux.git/drivers/hwmon/ibmpowernv.c
> @@ -30,6 +30,7 @@
> #include <linux/platform_device.h>
> #include <asm/opal.h>
> #include <linux/err.h>
> +#include <asm/cputhreads.h>
>
> #define MAX_ATTR_LEN 32
> #define MAX_LABEL_LEN 64
> @@ -110,12 +111,54 @@ static ssize_t show_label(struct device
> return sprintf(buf, "%s\n", sdata->label);
> }
>
> +static int __init get_logical_cpu(unsigned int hwcpu)
> +{
> + int cpu;
> +
> + for_each_possible_cpu(cpu)
> + if (get_hard_smp_processor_id(cpu) == hwcpu)
> + return cpu;
> +
> + pr_err("%s: could not find a cpu with physical id 0x%x\n",
> + __func__, hwcpu);
I like moving this into a function, but I really dislike this error
message. If the devicetree data is wrong/bad, the log and the console
will be clogged with that message. And the user will not be able
to do anything about it.
Guenter
> + return -ENOENT;
> +}
> +
> static void __init make_sensor_label(struct device_node *np,
> struct sensor_data *sdata, const char *label)
> {
> + u32 id;
> size_t n;
>
> n = snprintf(sdata->label, sizeof(sdata->label), "%s", label);
> +
> + /*
> + * Core temp pretty print
> + */
> + if (!of_property_read_u32(np, "ibm,pir", &id)) {
> + int cpuid = get_logical_cpu(id);
> +
> + if (cpuid >= 0)
> + /*
> + * The digital thermal sensors are associated
> + * with a core. Let's print out the range of
> + * cpu ids corresponding to the hardware
> + * threads of the core.
> + */
> + n += snprintf(sdata->label + n,
> + sizeof(sdata->label) - n, " %d-%d",
> + cpuid, cpuid + threads_per_core - 1);
> + else
> + n += snprintf(sdata->label + n,
> + sizeof(sdata->label) - n, " phy%d", id);
> + }
> +
> + /*
> + * Membuffer pretty print
> + */
> + if (!of_property_read_u32(np, "ibm,chip-id", &id))
> + n += snprintf(sdata->label + n, sizeof(sdata->label) - n,
> + " %d", id & 0xffff);
> }
>
> static int get_sensor_index_attr(const char *name, u32 *index,
>
>
next prev parent reply other threads:[~2015-04-08 13:26 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-08 7:00 [lm-sensors] [PATCH v3] hwmon: (ibmpowernv) pretty print labels Cédric Le Goater
2015-04-08 7:00 ` Cédric Le Goater
2015-04-08 13:26 ` Guenter Roeck [this message]
2015-04-08 13:26 ` Guenter Roeck
2015-04-08 13:33 ` [lm-sensors] " Cedric Le Goater
2015-04-08 13:33 ` Cedric Le Goater
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=55252C9A.4050505@roeck-us.net \
--to=linux@roeck-us.net \
--cc=clg@fr.ibm.com \
--cc=jdelvare@suse.de \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lm-sensors@lm-sensors.org \
--cc=neelegup@linux.vnet.ibm.com \
--cc=skiboot@lists.ozlabs.org \
--cc=stewart@linux.vnet.ibm.com \
/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.