[ltp] Re: [PATCH v2] Re: Battery class driver.

Shem Multinymous linux-thinkpad@linux-thinkpad.org
Tue, 31 Oct 2006 15:42:12 +0200

Hi Jean,

On 10/31/06, Jean Delvare <khali@linux-fr.org> wrote:
> On 10/28/2006, someone who remains multinymous wrote:
> >On 10/28/06, David Zeuthen <davidz@redhat.com> wrote:
> >> What about just prepending the unit to the 'threshold' file? Then user
> >> space can expect the contents of said file to be of the form "%d %s". I
> >> don't think that violates the "only one value per file" sysfs mantra.

> >Jean, what's your opinion on letting hwmon-ish attributes specify
> >units as "%d %s" where these are hardware-dependent?
> I fail to see any benefit in doing so, while I see several problems (see
> above) and potential for confusion. So my opinion is: please don't do
> that.

Well, we have to do *something* about those devices that don't have
fixed units (see my mail to Greg from a few minutes ago), so which
alternative do you prefer?

> >The tp_smapi battery driver did just this  ("16495 mW"). But I dropped
> >it in a recent version when Pavel pointed out the rest of sysfs, hwmon
> >included, uses undecorated integers.
> >Consistency aside, it seems reasonable and convenient. You have to
> >decree that writes to the attributes (where relevant) don't include
> >the units, of course, so no one will expect the kernel to parse that.
> But what value should then be written? One in an absolute aribtrary unit?
> That would make reads and writes to the sysfs files inconsistent, in
> direct violation of the sysfs standard. Or in the same unit read from
> the file? It means that userspace must first read from the file, parse
> the unit, then convert the value to be written. This doesn't match my
> definition of "convenient".

The latter. Yes, writing is not as convenient as reading; but the same
drawback exists in the other two suggestions for dynamic units - you
still have to read another attribute, or parse a filename, to get the

The "capacity_remaining:mV" option at least saves you the parsing if
your're only interested in mV readouts. But battery gauge applets, for
examples, shouldn't be hardcoded to specific units, so they will have
to do the filename parsing dance.