Messages in this thread | | | Subject | Re: [PATCH] base: arch_topology: Use policy->max to calculate freq_factor | From | Thara Gopinath <> | Date | Wed, 17 Nov 2021 12:01:04 -0500 |
| |
Hi,
On 11/17/21 7:49 AM, Rafael J. Wysocki wrote: > On Wed, Nov 17, 2021 at 11:46 AM Lukasz Luba <lukasz.luba@arm.com> wrote: >> >> Hi Rafael, >> >> On 11/16/21 7:05 PM, Rafael J. Wysocki wrote: >>> On Mon, Nov 15, 2021 at 9:10 PM Thara Gopinath >>> <thara.gopinath@linaro.org> wrote: >>>> >>>> cpuinfo.max_freq can reflect boost frequency if enabled during boot. Since >>>> we don't consider boost frequencies while calculating cpu capacities, use >>>> policy->max to populate the freq_factor during boot up. >>> >>> I'm not sure about this. schedutil uses cpuinfo.max_freq as the max frequency. >> >> Agree it's tricky how we treat the boost frequencies and also combine >> them with thermal pressure. >> We probably would have consider these design bits: >> 1. Should thermal pressure include boost frequency? > > Well, I guess so. > > Running at a boost frequency certainly increases thermal pressure. > >> 2. Should max capacity 1024 be a boost frequency so scheduler >> would see it explicitly? > > That's what it is now if cpuinfo.max_freq is a boost frequency. > >> - if no, then schedutil could still request boost freq thanks to >> map_util_perf() where we add 25% to the util and then >> map_util_freq() would return a boost freq when util was > 1024 >> >> >> I can see in schedutil only one place when cpuinfo.max_freq is used: >> get_next_freq(). If the value stored in there is a boost, >> then don't we get a higher freq value for the same util? > > Yes. we do, which basically is my point. > > The schedutil's response is proportional to cpuinfo.max_freq and that > needs to be taken into account for the results to be consistent.
So IIUC, cpuinfo.max_freq is always supposed to be the highest supported frequency of a cpu, irrespective of whether boost is enabled or not. Where as policy->max is the currently available maximum cpu frequency which can be equal to cpuinfo.max_freq or lower (depending on whether boost is enabled, whether there is a constraint on policy->max placed by thermal etc). So in this case isn't it better for schedutil to consider policy->max instead of cpuinfo.max ? Like you mentioned above same utilization will relate to different frequencies depending on the maximum frequency.
>
-- Warm Regards Thara (She/Her/Hers)
| |