Message ID | 20220707071555.10085-1-lukasz.luba@arm.com |
---|---|
Headers | show |
Series | Energy Model power in micro-Watts and SCMI v3.1 alignment | expand |
Hi Rafael, On 7/7/22 08:15, Lukasz Luba wrote: > Hi all, > > This is a patch set which changes Energy Model power values scale to > micro-Watts. It also upgrades the SCMI performance layer + scmi-cpufreq > driver to leverage the SCMI v3.1 spec and process micro-Watts power values > coming from FW. The higher precision in EM power field solves an issue > of a rounding error, which then can be misinterpreted as 'inefficient OPP'. > An example rounding issue calculation is present in patch 1/4 description. > > Changes: > v2 > - simplified 32bit checks for max number of CPUs preventing energy > estimation overflow > - added Reviewed-by and ACKs > v1 [1] > > Regards, > Lukasz Luba > > [1] https://lore.kernel.org/lkml/20220622145802.13032-1-lukasz.luba@arm.com/ > > Lukasz Luba (4): > PM: EM: convert power field to micro-Watts precision and align drivers > Documentation: EM: Switch to micro-Watts scale > firmware: arm_scmi: Get detailed power scale from perf > cpufreq: scmi: Support the power scale in micro-Watts in SCMI v3.1 > > Documentation/power/energy-model.rst | 14 +++---- > drivers/cpufreq/mediatek-cpufreq-hw.c | 7 ++-- > drivers/cpufreq/scmi-cpufreq.c | 15 +++++++- > drivers/firmware/arm_scmi/perf.c | 18 +++++---- > drivers/opp/of.c | 15 ++++---- > drivers/powercap/dtpm_cpu.c | 5 +-- > drivers/thermal/cpufreq_cooling.c | 13 ++++++- > drivers/thermal/devfreq_cooling.c | 19 ++++++++-- > include/linux/energy_model.h | 54 +++++++++++++++++++-------- > include/linux/scmi_protocol.h | 8 +++- > kernel/power/energy_model.c | 24 ++++++++---- > 11 files changed, 132 insertions(+), 60 deletions(-) > I got ACKs (and on Reviewed-by) for this patch set. Could you take this via your PM tree, please?
On 7/7/22 11:53, Viresh Kumar wrote: > On 07-07-22, 08:15, Lukasz Luba wrote: >> The milli-Watts precision causes rounding errors while calculating >> efficiency cost for each OPP. This is especially visible in the 'simple' >> Energy Model (EM), where the power for each OPP is provided from OPP >> framework. This can cause some OPPs to be marked inefficient, while >> using micro-Watts precision that might not happen. >> >> Update all EM users which access 'power' field and assume the value is >> in milli-Watts. >> >> Solve also an issue with potential overflow in calculation of energy >> estimation on 32bit machine. It's needed now since the power value >> (thus the 'cost' as well) are higher. >> >> Example calculation which shows the rounding error and impact: >> >> power = 'dyn-power-coeff' * volt_mV * volt_mV * freq_MHz >> >> power_a_uW = (100 * 600mW * 600mW * 500MHz) / 10^6 = 18000 >> power_a_mW = (100 * 600mW * 600mW * 500MHz) / 10^9 = 18 >> >> power_b_uW = (100 * 605mW * 605mW * 600MHz) / 10^6 = 21961 >> power_b_mW = (100 * 605mW * 605mW * 600MHz) / 10^9 = 21 >> >> max_freq = 2000MHz >> >> cost_a_mW = 18 * 2000MHz/500MHz = 72 >> cost_a_uW = 18000 * 2000MHz/500MHz = 72000 >> >> cost_b_mW = 21 * 2000MHz/600MHz = 70 // <- artificially better >> cost_b_uW = 21961 * 2000MHz/600MHz = 73203 >> >> The 'cost_b_mW' (which is based on old milli-Watts) is misleadingly >> better that the 'cost_b_uW' (this patch uses micro-Watts) and such >> would have impact on the 'inefficient OPPs' information in the Cpufreq >> framework. This patch set removes the rounding issue. >> >> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> >> --- >> drivers/cpufreq/mediatek-cpufreq-hw.c | 7 ++-- >> drivers/cpufreq/scmi-cpufreq.c | 6 +++ >> drivers/opp/of.c | 15 ++++---- >> drivers/powercap/dtpm_cpu.c | 5 +-- >> drivers/thermal/cpufreq_cooling.c | 13 ++++++- >> drivers/thermal/devfreq_cooling.c | 19 ++++++++-- >> include/linux/energy_model.h | 54 +++++++++++++++++++-------- >> kernel/power/energy_model.c | 24 ++++++++---- >> 8 files changed, 100 insertions(+), 43 deletions(-) > > Acked-by: Viresh Kumar <viresh.kumar@linaro.org> > Thank you Viresh for the ACKs!
Hi Rafael, gentle ping. On 7/7/22 11:46, Lukasz Luba wrote: > Hi Rafael, > > On 7/7/22 08:15, Lukasz Luba wrote: >> Hi all, >> >> This is a patch set which changes Energy Model power values scale to >> micro-Watts. It also upgrades the SCMI performance layer + scmi-cpufreq >> driver to leverage the SCMI v3.1 spec and process micro-Watts power >> values >> coming from FW. The higher precision in EM power field solves an issue >> of a rounding error, which then can be misinterpreted as 'inefficient >> OPP'. >> An example rounding issue calculation is present in patch 1/4 >> description. >> >> Changes: >> v2 >> - simplified 32bit checks for max number of CPUs preventing energy >> estimation overflow >> - added Reviewed-by and ACKs >> v1 [1] >> >> Regards, >> Lukasz Luba >> >> [1] >> https://lore.kernel.org/lkml/20220622145802.13032-1-lukasz.luba@arm.com/ >> >> Lukasz Luba (4): >> PM: EM: convert power field to micro-Watts precision and align drivers >> Documentation: EM: Switch to micro-Watts scale >> firmware: arm_scmi: Get detailed power scale from perf >> cpufreq: scmi: Support the power scale in micro-Watts in SCMI v3.1 >> >> Documentation/power/energy-model.rst | 14 +++---- >> drivers/cpufreq/mediatek-cpufreq-hw.c | 7 ++-- >> drivers/cpufreq/scmi-cpufreq.c | 15 +++++++- >> drivers/firmware/arm_scmi/perf.c | 18 +++++---- >> drivers/opp/of.c | 15 ++++---- >> drivers/powercap/dtpm_cpu.c | 5 +-- >> drivers/thermal/cpufreq_cooling.c | 13 ++++++- >> drivers/thermal/devfreq_cooling.c | 19 ++++++++-- >> include/linux/energy_model.h | 54 +++++++++++++++++++-------- >> include/linux/scmi_protocol.h | 8 +++- >> kernel/power/energy_model.c | 24 ++++++++---- >> 11 files changed, 132 insertions(+), 60 deletions(-) >> > > I got ACKs (and on Reviewed-by) for this patch set. > Could you take this via your PM tree, please? This patch set is on our roadmap and would be good if it could go as v5.20 material. There are Acks for these patch set. If you need some help with this (like rebasing, etc), just ping me. Could you take them, please? Regards, Lukasz
On Fri, Jul 15, 2022 at 10:56 AM Lukasz Luba <lukasz.luba@arm.com> wrote: > > Hi Rafael, > > gentle ping. > > On 7/7/22 11:46, Lukasz Luba wrote: > > Hi Rafael, > > > > On 7/7/22 08:15, Lukasz Luba wrote: > >> Hi all, > >> > >> This is a patch set which changes Energy Model power values scale to > >> micro-Watts. It also upgrades the SCMI performance layer + scmi-cpufreq > >> driver to leverage the SCMI v3.1 spec and process micro-Watts power > >> values > >> coming from FW. The higher precision in EM power field solves an issue > >> of a rounding error, which then can be misinterpreted as 'inefficient > >> OPP'. > >> An example rounding issue calculation is present in patch 1/4 > >> description. > >> > >> Changes: > >> v2 > >> - simplified 32bit checks for max number of CPUs preventing energy > >> estimation overflow > >> - added Reviewed-by and ACKs > >> v1 [1] > >> > >> Regards, > >> Lukasz Luba > >> > >> [1] > >> https://lore.kernel.org/lkml/20220622145802.13032-1-lukasz.luba@arm.com/ > >> > >> Lukasz Luba (4): > >> PM: EM: convert power field to micro-Watts precision and align drivers > >> Documentation: EM: Switch to micro-Watts scale > >> firmware: arm_scmi: Get detailed power scale from perf > >> cpufreq: scmi: Support the power scale in micro-Watts in SCMI v3.1 > >> > >> Documentation/power/energy-model.rst | 14 +++---- > >> drivers/cpufreq/mediatek-cpufreq-hw.c | 7 ++-- > >> drivers/cpufreq/scmi-cpufreq.c | 15 +++++++- > >> drivers/firmware/arm_scmi/perf.c | 18 +++++---- > >> drivers/opp/of.c | 15 ++++---- > >> drivers/powercap/dtpm_cpu.c | 5 +-- > >> drivers/thermal/cpufreq_cooling.c | 13 ++++++- > >> drivers/thermal/devfreq_cooling.c | 19 ++++++++-- > >> include/linux/energy_model.h | 54 +++++++++++++++++++-------- > >> include/linux/scmi_protocol.h | 8 +++- > >> kernel/power/energy_model.c | 24 ++++++++---- > >> 11 files changed, 132 insertions(+), 60 deletions(-) > >> > > > > I got ACKs (and on Reviewed-by) for this patch set. > > Could you take this via your PM tree, please? > > This patch set is on our roadmap and would be good if it could > go as v5.20 material. > > There are Acks for these patch set. If you need some > help with this (like rebasing, etc), just ping me. > > Could you take them, please? All patches in the series applied as 5.20 material, thanks!