Hi Dietmar, Juri,
I'm evaluating EAS RFCv5 on Qualcomm SoCs. I have a question about the CPU invariant utilization tracking in __update_entity_load_avg.
I have Juri's arch-support patches for arm64 such that
arch_scale_cpu_capacity(cpu) - returns the maximum capacity of the CPU from the energy model
Consider a dual-cluster system that has equally capable CPUs in both clusters with each cluster on its own clock source, but with different max OPP levels for each cluster. If both the clusters are at the same OPP level, the lower-max-opp cluster would accumulate utilization_avg at a slower rate. This doesn't seem right; at the same frequency, a task should exhibit equal performance on either cluster since the CPUs are otherwise equally capable. On such a system scale_cpu should be 1024 for both clusters at least in the context of utilization tracking. What do you think?
Also, please confirm my understanding with respect to traditional Big.Little - where utilization will accumulate slower on a little CPU due to the CPU invariance factor. I can understand the frequency scaling factor - a task consumes more absolute CPU cycles at a higher frequency; now it would seem that given the same frequency scaling invariance factor (say little CPU's is 500MHz/1000MHz and big CPU is 1000MHz/2000MHz), we still want to have the little CPU accumulate utilization slower because the amount of work done (in IPC terms perhaps) is less on the little CPU?
Thanks, Vikram
-- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation.