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

Piotr Oniszczuk
2025-06-05T13:22:55Z

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