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

Piotr Oniszczuk piotr.oniszczuk at gmail.com
Thu Jun 5 06:22:41 PDT 2025



> Wiadomość napisana przez Alexey Charkov <alchark at gmail.com> w dniu 4 cze 2025, o godz. 21:12:
> 
> On Wed, Jun 4, 2025 at 10:38 PM Nicolas Frattaroli
> <nicolas.frattaroli at collabora.com> wrote:
>> 
>> 
> 
> 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 at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip




More information about the Linux-rockchip mailing list