From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Date: Wed, 08 Apr 2015 13:26:50 +0000 Subject: Re: [lm-sensors] [PATCH v3] hwmon: (ibmpowernv) pretty print labels Message-Id: <55252C9A.4050505@roeck-us.net> List-Id: References: <1428476427-23311-1-git-send-email-clg@fr.ibm.com> In-Reply-To: <1428476427-23311-1-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: =?UTF-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= , lm-sensors@lm-sensors.org Cc: Stewart Smith , Neelesh Gupta , skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, Jean Delvare 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from bh-25.webhostbox.net (bh-25.webhostbox.net [208.91.199.152]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 79F731A0CF1 for ; Wed, 8 Apr 2015 23:27:04 +1000 (AEST) Received: from mailnull by bh-25.webhostbox.net with sa-checked (Exim 4.82) (envelope-from ) id 1Yfq0U-0043v9-0B for linuxppc-dev@lists.ozlabs.org; Wed, 08 Apr 2015 13:27:02 +0000 Message-ID: <55252C9A.4050505@roeck-us.net> Date: Wed, 08 Apr 2015 06:26:50 -0700 From: Guenter Roeck MIME-Version: 1.0 To: =?UTF-8?B?Q8OpZHJpYyBMZSBHb2F0ZXI=?= , lm-sensors@lm-sensors.org Subject: Re: [PATCH v3] hwmon: (ibmpowernv) pretty print labels References: <1428476427-23311-1-git-send-email-clg@fr.ibm.com> In-Reply-To: <1428476427-23311-1-git-send-email-clg@fr.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Cc: Stewart Smith , Neelesh Gupta , skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, Jean Delvare List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 > --- > > 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 > #include > #include > +#include > > #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, > >