On Thu, Aug 13, 2020 at 11:30:33AM -0700, Matthias Kaehlcke wrote: > The 'sustainable_power' attribute provides an estimate of the sustained > power that can be dissipated at the desired control temperature. One > could argue that this value is not necessarily the same for all devices > with the same SoC, which may have different form factors or thermal > designs. However there are reasons to specify a (default) value at SoC > level for SC7180: most importantly, if no value is specified at all the > power_allocator thermal governor (aka 'IPA') estimates a value, using the > minimum power of all cooling devices of the zone, which can result in > overly aggressive thermal throttling. For most devices an approximate > conservative value should be more useful than the minimum guesstimate > of power_allocator. Devices that need a different value can overwrite > it in their <device>.dts. Also the thermal zones for SC7180 have a high > level of granularity (essentially one for each function block), which > makes it more likely that the default value just works for many devices. > > The values correspond to 1901 MHz for the big cores, and 1804 MHz for > the small cores. The values were determined by limiting the CPU > frequencies to different max values and launching a bunch of processes > that cause high CPU load ('while true; do true; done &' is simple and > does a good job). A frequency is deemed sustainable if the CPU > temperatures don't rise (consistently) above the second trip point > ('control temperature', 95 degC in this case). Once the highest > sustainable frequency is found, the sustainable power can be calculated > by multiplying the energy consumption per core at this frequency (which > can be found in /sys/kernel/debug/energy_model/) with the number of > cores that are specified as cooling devices. > > The sustainable frequencies were determined at room temperature > on a device without heat sink or other passive cooling elements. > > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > --- > If maintainers think 'sustainable_power' should be specified at > device level (with which I conceptually agree) I'm fine with > doing that, just seemed it could be useful to have a reasonable > 'default' at SoC level in this case. Any comments on this?