Hi Viresh,
Thanks for your great work on OPP v2 support!
LSK was requested to backport this feature on 3.18/4.1 kernel https://projects.linaro.org/browse/LSK-3 I have 2 draft branches for this purpose git://git.linaro.org/kernel/linux-linaro-stable.git v3.18/topic/OPPv2/v4.1/topic/OPPv2
Would you like review those branches? And if they're ok. Any suggestions for this feature testing?
Thanks Alex
On 28-10-15, 11:36, Alex Shi wrote:
Hi Viresh,
Thanks for your great work on OPP v2 support!
LSK was requested to backport this feature on 3.18/4.1 kernel https://projects.linaro.org/browse/LSK-3 I have 2 draft branches for this purpose git://git.linaro.org/kernel/linux-linaro-stable.git v3.18/topic/OPPv2/v4.1/topic/OPPv2
Would you like review those branches? And if they're ok. Any suggestions for this feature testing?
Hey Alex,
I did go through the branches, but there are too many patches (sorry for adding so many of them). And I am not sure if you missed anything, I have to believe you for that :)
So, it is fine if you have picked all OPP patches between 3.18 and the latest release.
Regarding testing, there are two important things you need to test: - Old bindings: A lot of users are using the old v1 bindings and you need to do some sanity cpufreq tests on them to see if the old bindings are still working well.
- New bindings: You need to convert few of them (and maybe upstream that as well) to use the new bindings and then repeat the same tests.
On 10/28/2015 06:19 PM, Viresh Kumar wrote:
On 28-10-15, 11:36, Alex Shi wrote:
Hi Viresh,
Thanks for your great work on OPP v2 support!
LSK was requested to backport this feature on 3.18/4.1 kernel https://projects.linaro.org/browse/LSK-3 I have 2 draft branches for this purpose git://git.linaro.org/kernel/linux-linaro-stable.git v3.18/topic/OPPv2/v4.1/topic/OPPv2
Would you like review those branches? And if they're ok. Any suggestions for this feature testing?
Hey Alex,
I did go through the branches, but there are too many patches (sorry for adding so many of them). And I am not sure if you missed anything, I have to believe you for that :)
So, it is fine if you have picked all OPP patches between 3.18 and the latest release.
Thanks for review! I am sure all 'PM / OPP' commits are picked up as well as cpufreq-dt. but not all cpufreq commit...
Regarding testing, there are two important things you need to test:
- Old bindings: A lot of users are using the old v1 bindings and you need to do some sanity cpufreq tests on them to see if the old bindings are still working well.
Sorry for a newbies on cpufreq! Could you like to give some detailed suggestions like, with which kinds of boards, using some testcase, like pmtest to do function checking...
And for OPPv2, I just find the arch/arm/boot/dts/exynos4412.dtsi is the only one which support OPPv2, is it right? What test did you do for upstream?
- New bindings: You need to convert few of them (and maybe upstream that as well) to use the new bindings and then repeat the same tests.
On 28-10-15, 19:19, Alex Shi wrote:
Sorry for a newbies on cpufreq! Could you like to give some detailed suggestions like, with which kinds of boards, using some testcase, like pmtest to do function checking...
Perhaps you can just boot the board, set governor to ondemand and see if the frequency is changed based on load or not. That's all. Any board will work, that uses OPP bindings.
And for OPPv2, I just find the arch/arm/boot/dts/exynos4412.dtsi is the only one which support OPPv2, is it right? What test did you do for upstream?
Right. I have been using exynos 5250 arndale until now, by locally updating the DT file.
On 10/28/2015 07:36 PM, Viresh Kumar wrote:
And for OPPv2, I just find the arch/arm/boot/dts/exynos4412.dtsi is the
only one which support OPPv2, is it right? What test did you do for upstream?
Right. I have been using exynos 5250 arndale until now, by locally updating the DT file.
Do you mean you just copy the 4412 dtsi to use on 5250? Could you like to share your dt file for 5250?
Thanks a lot! Alex
On 28-10-15, 21:11, Alex Shi wrote:
Do you mean you just copy the 4412 dtsi to use on 5250? Could you like to share your dt file for 5250?
I have created my own for testing:
cpus { #address-cells = <1>; #size-cells = <0>;
cpu0: cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a15"; reg = <0>; clock-frequency = <1700000000>; clocks = <&clock CLK_ARM_CLK>; clock-names = "cpu"; clock-latency = <140000>; cooling-min-level = <15>; cooling-max-level = <9>; #cooling-cells = <2>; /* min followed by max */ operating-points-v2 = <&cpu0_opp_table>; }; cpu1: cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a15"; reg = <1>; clock-frequency = <1700000000>; operating-points-v2 = <&cpu0_opp_table>; }; };
cpu0_opp_table: opp_table0 { compatible = "operating-points-v2"; supply-names = "vcc0"; opp-shared;
opp00 { opp-hz = /bits/ 64 <1700000000>; opp-microvolt = <1300000 1300000 1300000>; opp-microamp = <70000>; clock-latency-ns = <30>; opp-suspend; }; opp01 { opp-hz = /bits/ 64 <1600000000>; opp-microvolt = <1250000 1250000 1250000>; opp-microamp = <70000>; clock-latency-ns = <300>; }; opp02 { opp-hz = /bits/ 64 <1500000000>; opp-microvolt = <1225000 1225000 1225000>; opp-microamp = <70000>; clock-latency-ns = <3000>; }; opp03 { opp-hz = /bits/ 64 <1400000000>; opp-microvolt = <1200000 1200000 1200000>; opp-microamp = <70000>; clock-latency-ns = <3000>; }; opp04 { opp-hz = /bits/ 64 <1300000000>; opp-microvolt = <1150000 1150000 1150000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp05 { opp-hz = /bits/ 64 <1200000000>; opp-microvolt = <1125000 1125000 1125000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp06 { opp-hz = /bits/ 64 <1100000000>; opp-microvolt = <1100000 1100000 1100000>; opp-microamp = <70000>; clock-latency-ns = <30>; }; opp07 { opp-hz = /bits/ 64 <1000000000>; opp-microvolt = <1075000 1075000 1075000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp08 { opp-hz = /bits/ 64 <900000000>; opp-microvolt = <1050000 1050000 1050000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp09 { opp-hz = /bits/ 64 <800000000>; opp-microvolt = <1025000 1025000 1025000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp010 { opp-hz = /bits/ 64 <700000000>; opp-microvolt = <1012500 1012500 1012500>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp011 { opp-hz = /bits/ 64 <600000000>; opp-microvolt = <1000000 1000000 1000000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp012 { opp-hz = /bits/ 64 <500000000>; opp-microvolt = <975000 975000 975000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp013 { opp-hz = /bits/ 64 <400000000>; opp-microvolt = <950000 950000 950000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp014 { opp-hz = /bits/ 64 <300000000>; opp-microvolt = <937500 937500 937500>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; opp015 { opp-hz = /bits/ 64 <200000000>; opp-microvolt = <925000 925000 925000>; opp-microamp = <70000>; clock-latency-ns = <300000>; }; };
Thanks a lot Viresh!
It is a very interesting share. :)
The original 5250 have no so many level freq changes. Do you mean with your new settings in DT+OPPv2, the exynos 5250 can be set on any of appointed freq? like 1.7GHz/1.6GHz etc.?
Could you like to share how to control the system load to make the different freq setting and how to get the current cpu freq info?
I have not 5250 board to do the testing, but I have panda board and a mt8173 board, also a arndale octa. do you know if they work for OPPv2?
Thanks a lot for sharing! Alex
On 10/28/2015 09:30 PM, Viresh Kumar wrote:
cpu0_opp_table: opp_table0 { compatible = "operating-points-v2"; supply-names = "vcc0"; opp-shared;
opp00 { opp-hz = /bits/ 64 <1700000000>; opp-microvolt = <1300000 1300000 1300000>; opp-microamp = <70000>; clock-latency-ns = <30>; opp-suspend; }; opp01 { opp-hz = /bits/ 64 <1600000000>; opp-microvolt = <1250000 1250000 1250000>; opp-microamp = <70000>; clock-latency-ns = <300>; };
On 29-10-15, 20:29, Alex Shi wrote:
Thanks a lot Viresh!
It is a very interesting share. :)
The original 5250 have no so many level freq changes. Do you mean with your new settings in DT+OPPv2, the exynos 5250 can be set on any of appointed freq? like 1.7GHz/1.6GHz etc.?
The new OPP bindings allow the kernel to receive more data from the bootloader, not that it changes any thing at the hardware level. i.e. The platform will keep support same frequency levels it used to be.
Check linux-next, it has old-opp bindings for exynos5250 with these frequencies :)
Could you like to share how to control the system load to make the
Just run any load that can make the system busy, as what you do for scheduler changes :) Anyway, even if you run a ls * command in the terminal, you will see some change in freq :)
different freq setting and how to get the current cpu freq info?
Look for: /sys/devices/system/cpu/cpuN/cpufreq/scaling_cur_freq, which gives the current freq of the CPU and /sys/devices/system/cpu/cpuN/cpufreq/stats/*, which keeps track of all the freq changes.
I have not 5250 board to do the testing, but I have panda board and a mt8173 board, also a arndale octa. do you know if they work for OPPv2?
Anything that was using the old OPP-bindings can just migrate to the new ones.
Even others can, but then they need to be a user of the OPP framework.
Thanks a lot for your valuable info, Viresh! I will try your way, and may bring question back.
Thanks a lot for your generous help! :)
On 10/30/2015 08:48 AM, Viresh Kumar wrote:
On 29-10-15, 20:29, Alex Shi wrote:
Thanks a lot Viresh!
It is a very interesting share. :)
The original 5250 have no so many level freq changes. Do you mean with your new settings in DT+OPPv2, the exynos 5250 can be set on any of appointed freq? like 1.7GHz/1.6GHz etc.?
The new OPP bindings allow the kernel to receive more data from the bootloader, not that it changes any thing at the hardware level. i.e. The platform will keep support same frequency levels it used to be.
Check linux-next, it has old-opp bindings for exynos5250 with these frequencies :)
Could you like to share how to control the system load to make the
Just run any load that can make the system busy, as what you do for scheduler changes :) Anyway, even if you run a ls * command in the terminal, you will see some change in freq :)
different freq setting and how to get the current cpu freq info?
Look for: /sys/devices/system/cpu/cpuN/cpufreq/scaling_cur_freq, which gives the current freq of the CPU and /sys/devices/system/cpu/cpuN/cpufreq/stats/*, which keeps track of all the freq changes.
I have not 5250 board to do the testing, but I have panda board and a mt8173 board, also a arndale octa. do you know if they work for OPPv2?
Anything that was using the old OPP-bindings can just migrate to the new ones.
Even others can, but then they need to be a user of the OPP framework.
linaro-kernel@lists.linaro.org