Messages in this thread | | | From | Sam Wu <> | Date | Thu, 17 Nov 2022 17:00:28 -0800 | Subject | Re: [PATCH v1] Revert "cpufreq: schedutil: Move max CPU capacity to sugov_policy" |
| |
On Wed, Nov 16, 2022 at 3:35 AM Lukasz Luba <lukasz.luba@arm.com> wrote: > Which mainline kernel version you use in pixel6? I am using kernel version 6.1-rc5. > > Could you elaborate a bit how is it possible? > Do you have the sg_policy setup properly (and at right time)? > Do you have the cpu capacity from arch_scale_cpu_capacity() > set correctly and at the right time during this cpufreq > governor setup? > > IIRC in Android there is a different code for setting up the > cpufreq sched governor clones. In mainline we don't have to do > those tricks, so this might be the main difference. This behavior is seen on the mainline kernel. There isn't any vendor code modifying the behavior, and the schedutil governor is being used. > > Could you trace the value that is read from > arch_scale_cpu_capacity() and share it with us? > I suspect this value changes in time in your kernel. There's an additional CPU capacity normalization step during init_cpu_capacity_callback() that does not happen until all the CPUs come online. However, the sugov_start() function can be called for a subset of CPUs before all the CPUs are brought up and before the normalization of the CPU capacity values, so there could be a stale value stored in sugov_policy.max field.
Best, Sam
| |