Re: [PATCH v3 0/3] thermal: introduce by-name softlink
From: Greg Kroah-Hartman
Date: Thu Dec 12 2019 - 02:34:47 EST
On Wed, Dec 11, 2019 at 12:11:53PM -0800, Wei Wang wrote:
> On Wed, Dec 11, 2019 at 12:54 AM Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Tue, Dec 10, 2019 at 09:54:11PM +0100, Daniel Lezcano wrote:
> > > On 10/12/2019 21:01, Wei Wang wrote:
> > > > On Tue, Dec 10, 2019 at 6:36 AM Daniel Lezcano
> > > > <daniel.lezcano@xxxxxxxxxx> wrote:
> > > >>
> > > >> On 05/12/2019 08:19, Wei Wang wrote:
> > > >>> The paths thermal_zone%d and cooling_device%d are not intuitive and the
> > > >>> numbers are subject to change due to device tree change. This usually
> > > >>> leads to tree traversal in userspace code.
> >
> > tree traversal is supposed to be done in userspace code :)
> >
> Yes, that can be done in userspace, but given the amount of thermal
> zones we have in some mobile devices, this will bring a lot of
> convenience.
Userspace is easier to write than kernel code. Kernel code and apis you
have to retain for the next 20+ years, are you willing to do that?
> e.g. this is on Pixel 4 XL:
> coral:/ # ls /sys/devices/virtual/thermal/
> cdev-by-name cooling_device15 cooling_device22 cooling_device3
> cooling_device9 thermal_zone15 thermal_zone22 thermal_zone3
> thermal_zone37 thermal_zone44 thermal_zone51 thermal_zone59
> thermal_zone66 thermal_zone73 thermal_zone80 thermal_zone88
> cooling_device0 cooling_device16 cooling_device23 cooling_device30
> thermal_zone0 thermal_zone16 thermal_zone23 thermal_zone30
> thermal_zone38 thermal_zone45 thermal_zone52 thermal_zone6
> thermal_zone67 thermal_zone74 thermal_zone81 thermal_zone9
> cooling_device1 cooling_device17 cooling_device24 cooling_device31
> thermal_zone1 thermal_zone17 thermal_zone24 thermal_zone31
> thermal_zone39 thermal_zone46 thermal_zone53 thermal_zone60
> thermal_zone68 thermal_zone75 thermal_zone82 tz-by-name
> cooling_device10 cooling_device18 cooling_device25 cooling_device4
> thermal_zone10 thermal_zone18 thermal_zone25 thermal_zone32
> thermal_zone4 thermal_zone47 thermal_zone54 thermal_zone61
> thermal_zone69 thermal_zone76 thermal_zone83
> cooling_device11 cooling_device19 cooling_device26 cooling_device5
> thermal_zone11 thermal_zone19 thermal_zone26 thermal_zone33
> thermal_zone40 thermal_zone48 thermal_zone55 thermal_zone62
> thermal_zone7 thermal_zone77 thermal_zone84
> cooling_device12 cooling_device2 cooling_device27 cooling_device6
> thermal_zone12 thermal_zone2 thermal_zone27 thermal_zone34
> thermal_zone41 thermal_zone49 thermal_zone56 thermal_zone63
> thermal_zone70 thermal_zone78 thermal_zone85
> cooling_device13 cooling_device20 cooling_device28 cooling_device7
> thermal_zone13 thermal_zone20 thermal_zone28 thermal_zone35
> thermal_zone42 thermal_zone5 thermal_zone57 thermal_zone64
> thermal_zone71 thermal_zone79 thermal_zone86
> cooling_device14 cooling_device21 cooling_device29 cooling_device8
> thermal_zone14 thermal_zone21 thermal_zone29 thermal_zone36
> thermal_zone43 thermal_zone50 thermal_zone58 thermal_zone65
> thermal_zone72 thermal_zone8 thermal_zone87
Nice, you have a crazy SoC here, good luck! :)
> > But what userspace code needs to do this, and for what?
> In Android, thermal daemon and thermal HAL as well as some init.rc
> script would use those thermal paths for managing and monitoring
> thermal. The daemon/HAL could have logic pipled in, however Android's
> init.rc script would be really tricky.
Then put that logic in your userspace code.
> On a related note, we also create /dev/block/by-name links from userspace.
Yes we do, from userspace, not from within the kernel itself, so I think
you have answered the question :)
thanks,
greg k-h