Hi Lukasz,
On 01/02/2021 12:23, Lukasz Luba wrote: > Daniel, Chanwoo > > Gentle ping. Have you have a chance to check these patches? I will review the patches in a couple of days -- Daniel > On 1/26/21 10:39 AM, Lukasz Luba wrote: >> Hi all, >> >> This patch set tries to add the missing feature in the Intelligent Power >> Allocation (IPA) governor which is: frequency limit set by user space. >> User can set max allowed frequency for a given device which has impact on >> max allowed power. In current design there is no mechanism to figure this >> out. IPA must know the maximum allowed power for every device. It is then >> used for proper power split and divvy-up. When the user limit for max >> frequency is not know, IPA assumes it is the highest possible frequency. >> It causes wrong power split across the devices. >> >> This new mechanism provides the max allowed frequency to the thermal >> framework and then max allowed power to the IPA. >> The implementation is done in this way because currently there is no way >> to retrieve the limits from the PM QoS, without uncapping the local >> thermal limit and reading the next value. It would be a heavy way of >> doing these things, since it should be done every polling time (e.g. >> 50ms). >> Also, the value stored in PM QoS can be different than the real OPP >> 'rate' >> so still would need conversion into proper OPP for comparison with EM. >> Furthermore, uncapping the device in thermal just to check the user freq >> limit is not the safest way. >> Thus, this simple implementation moves the calculation of the proper >> frequency to the sysfs write code, since it's called less often. The >> value >> is then used as-is in the thermal framework without any hassle. >> >> As it's a RFC, it still misses the cpufreq sysfs implementation, but >> would >> be addressed if all agree. >> >> Regards, >> Lukasz Luba >> >> Lukasz Luba (3): >> PM /devfreq: add user frequency limits into devfreq struct >> thermal: devfreq_cooling: add new callback to get user limit for min >> state >> thermal: power_allocator: get proper max power limited by user >> >> drivers/devfreq/devfreq.c | 41 ++++++++++++++++++++++++--- >> drivers/thermal/devfreq_cooling.c | 33 +++++++++++++++++++++ >> drivers/thermal/gov_power_allocator.c | 17 +++++++++-- >> include/linux/devfreq.h | 4 +++ >> include/linux/thermal.h | 1 + >> 5 files changed, 90 insertions(+), 6 deletions(-) >> -- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog