Thread (44 messages) 44 messages, 8 authors, 2025-06-24

Re: [PATCH 1/4] arm64: dts: rockchip: list all CPU supplies on ArmSoM Sige5

From: Piotr Oniszczuk <hidden>
Date: 2025-06-05 13:22:55
Also in: linux-devicetree, linux-rockchip, lkml

Wiadomość napisana przez Alexey Charkov [off-list ref] w dniu 4 cze 2025, o godz. 21:12:

On Wed, Jun 4, 2025 at 10:38 PM Nicolas Frattaroli
[off-list ref] wrote:
quoted
Frequencies are fine, but I don't think the more power hungry big CPU
cluster gets any voltage scaling without it. Once I try to load the
system enough that the governor decides to bump the big cluster
frequency up, the regulator stays at 850000 microvolts, causing random
reboots when the whole cluster starts starving. With the patch,
voltage oscillates between 700000-737000 microvolts in idle and jumps
up to 950000 under load, and the system seems stable.

Here's what I used to monitor the voltage (there must be a better way
to do it, but it works):
sige5 ~ # watch cat `grep -r . /sys/class/regulator/*/name | grep
vdd_cpu_big_s0 | sed -e 's/name.*//'`/microvolts

And in another terminal:
sige5 ~ # stress-ng -c8
Alexey,
I see you are using rk3576 board like me (nanopi-m5)
Have you on your board correctly working cpu dvfs?
I mean: [1][desired clocks reported by kernel sysfs are in pair with [2[]cur clocks?
In my case i see mine cpu lives totally on it’s own with dvfs:

Requested is [1]
Running is [2]
Measured is [3]

random read 1:
Requested CPU4: 408 MHz 
Requested CPU0: 408 MHz 
Running CPU4: 1800 MHz 
Running CPU0: 1416 MHz 
Measured on HW: 1579.03 MHz

random read 2:
Requested CPU4: 1608 MHz 
Requested CPU0: 408 MHz 
Running CPU4: 2016 MHz 
Running CPU0: 1800 MHz 
Measured on HW: 410.33 MHz

random read 3:
Requested CPU4: 600 MHz 
Requested CPU0: 1800 MHz 
Running CPU4: 816 MHz 
Running CPU0: 1008 MHz 
Measured on HW: 2275.07 MHz

random read 4:
Requested CPU4: 1608 MHz 
Requested CPU0: 1200 MHz 
Running CPU4: 816 MHz 
Running CPU0: 816 MHz 
Measured on HW: 2114.58 MHz

this is on rk3576
on i.e allwinner h618 or rk3588 all looks quite normal - [1] and [2] are equal...  

my scaling governor is on_demand - so for sure clocks are dynamic - but i.e. on 3588 with the same binaries - i can't catch -at any random read - that requested is not equal to running while on 3576 almost any random read gives significant differences.
 
[1] scaling_cur_freq in sysfs
[2] cpuinfo_cur_freq in sysfs
[3] code to estimate arm cpu clock from http://uob-hpc.github.io/2017/11/22/arm-clock-freq.html
  
 
This might warrant a note in the commit message I guess :)

Thanks for your review and testing!

Best regards,
Alexey

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help