-
-
Notifications
You must be signed in to change notification settings - Fork 503
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Raspberry Pi 5 | CPU frequency remains max with initial_turbo #6891
Comments
Did you use our firmware migration script when installing the new kernel/firmware packages? It creates symlinks from |
as of now our script did not support CPU temp changed done fot RPi5 |
Sure I did use the script... mmm, maybe something messed it up?
Why is there something different for the Pi5? |
I have changed it manually of course:
I remember now I have seen someone talking about this symlink... now makes sense. I'm waiting for a 2nd pi5, this week should be able to double check on a fresh install before opening a bug. Yes the temp_limit works on pi5 and also the throttling flag. |
@MichaIng
|
Probably I missed one case of mv /boot/config.txt /boot/firmware/config.txt
ln -sf firmware/config.txt /boot/config.txt |
Uhm, I'm not sure the pi5 would boot with the config.txt almost empty in /boot... I guess I have to restore the symlink for cmdline as well. I have another idea at that might have been, other than sed. At the beginning I just configured it on the fly without really checking what would do (so easy to do it!). Maybe all this could have messed up the backup; I will try to reproduce it with the new pi5 when it comes. |
If you ever restored a backup from files stored on a Samba server, then you can consider the whole system to be broken. I guess you would have noticed this already, not sure if it would even boot successfully. Quick check: ls -l /
|
Thanks, indeed I already moved the changes on the right one.
should be, in case:
Yes the output is correct for ls -l /, I've never needed a restore thankfully. |
Ah, you mean that copying a symlink to a Samba share creates an empty file there? Then you are right, though it would still boot (defaults are sane) and the problems when you restored a backup from a Samba share are much worse than an empty config file.
Then we still need to watch our for the reason of the dereferences symlink. I checked all grep -r 'sed.* -[^ ]*i.*config.txt' | grep -v '\--follow-symlinks' Might it be possible that you have own scripts or used Ah, and was |
No I never ran any custom script or used sed. Sorry; yes cmdline.txt was dereferenced as well. |
Hmm, unsure at this point. The I could not find a case in our code base, but probably I missed a script which is was installed earlier, and is not updated on |
Yes indeed, I suspect maybe the update script cause I think it has been updated at least once since I used it. |
@Joulinar |
Hmm, can you verify this again with some console commands, verifying that the CPU frequency is indeed pinned to max? Because |
Sure let me know what. |
The voltage is not tied to the frequency. It is common that the voltage is max, as long as the frequency is not absolute min. It jumps between min and max, max whenever the frequency is only 1 MHz above min (100 MHz as of available p-states). The CPU frequency should be between 1500 and 2400 MHz. Is it not going above 1800 MHz in your case? What I meant with contradicting results is e.g.: #6676 (comment)
@Joulinar cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq
vcgencmd measure_clock arm |
|
@MichaIng What I meant is that it works as expected normally and also what I would expect for the Turbo mode (it is described somewhere in the Raspberry documentation). Let me check again with a vanilla config.txt because I've tested it almost always with some modifications and maybe always at least with a small bump on arm_freq_min. |
Let's keep voltage and frequency separate. As I said, there is no real dynamic voltage scaling, at least not up to RPi 4 based on what I tested, and based on what has been merged into the RPi documentation accordingly. So even with 1600 MHz, voltage is max, and 1600 MHz is nearly always shown, as of CPU utilisation caused by the commands to read the frequency. So in Joulinar's case, at least |
I have exactly the same behavior, every pool is 4 seconds and the boost should last only 20 seconds: root@DietPi5:~# pistats -c
temp clock volt
52.1 2400 0.8703
52.1 2400 0.8703
52.1 2400 0.8703
52.1 2400 0.8703
52.1 2400 0.8703
52.7 2400 0.8703
52.1 2400 0.8703
53.2 2400 0.8703
52.7 2400 0.8703
52.7 2400 0.8703
52.7 2400 0.8703
52.7 2400 0.8703
52.1 2400 0.8703
53.2 2400 0.8703
52.1 2400 0.8703
52.7 2400 0.8703
52.1 2400 0.8703
53.2 2400 0.8703
52.7 2400 0.8703
51.6 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
52.7 2400 0.8703
53.8 2400 0.8703
53.2 2400 0.8703
53.8 2400 0.8703
53.2 2400 0.8703
53.8 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
53.8 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
53.2 2400 0.8703
53.8 2400 0.8703
53.8 2400 0.8703
54.3 2400 0.8703
53.8 2400 0.8703 I wonder if I have the latest eeprom... I have seen somewhere there is one from 24th of Jan but mine is: CURRENT: Fri Jan 5 15:57:40 UTC 2024 (1704470260) I have no idea how it works... is there a different eeprom for different memory models? I have the 4GB version |
@MichaIng Seems to be properly reported and there's an obvious and massive difference in temperature and power consumption when it's fixed. |
You mean that it dynamically scales with multiple values between min and max? Probably it has changed for RPi 5 or for all models with a kernel update. Would be good of course, however, not relevant for this topic. You can update to latest EEPROM with: FIRMWARE_RELEASE_STATUS=latest rpi-eeprom-update -a The binaries for all RPi 5 variants, so I doubt it makes a difference, but I cannot rule it out either. However, Joulinar has a 4 GB variant as well. |
That works and worked as well before with
That part is new indeed, and makes sense as well, if it works as documented.
Probably 600 MHz does not run stable on RPi 5. If Okay so this looks like a firmware bug, and actually I have kinda déjà-vu, as, IIRC, it was the very same with RPi 4, or all RPi models, some time ago. ... oh, it was actually before RPi 4 release: raspberrypi/firmware#1005 Just one thing is different, between that old issue and between your two results: |
No it doesn't report the max frequency, only vcgencmd: root@DietPi5:~# cat /sys/devices/system/cpu/cpu[0-3]/cpufreq/cpuinfo_cur_freq
1500000
1600000
1600000
1600000 |
Okay thanks, at least consistency across results now. But quite strange that I will replicate this later, just to be sure, and then report at the RPi firmware repo. I'll ship a live patch as well to disable |
I have the official case with the small heatsink and the fan on top (not the active cooler). The delta versus the default configuration is around +3° C for me. Without temp clock volt
53.2 1600 0.7200
53.2 1600 0.7200
53.8 1600 0.7200
53.2 1600 0.7640
53.2 1600 0.7200
53.2 1600 0.7200
53.2 1600 0.7640
51.6 1600 0.7640
53.8 1600 0.7200
53.2 1600 0.7200
53.2 1600 0.7200
52.7 1600 0.7640
53.2 1600 0.7200
53.2 1600 0.7200
52.7 1600 0.7640
52.1 1600 0.7640 With temp clock volt
54.9 2400 0.8732
54.3 2400 0.8732
55.4 2400 0.8732
57.1 2400 0.8732
56.0 2400 0.8732
56.5 2400 0.8732
56.5 2400 0.8732
56.0 2400 0.8732
56.0 2400 0.8732
56.0 2400 0.8732
57.1 2400 0.8732
56.5 2400 0.8732
57.1 2400 0.8732
56.5 2400 0.8732
56.5 2400 0.8732
56.5 2400 0.8732
57.1 2400 0.8732
56.5 2400 0.8732
57.1 2400 0.8732
56.0 2400 0.8732 With temp clock volt
56.0 2400 0.8728
56.5 2400 0.8728
56.5 2400 0.8728
58.7 2400 0.8728
57.1 2400 0.8728
56.5 2400 0.8728
56.5 2400 0.8728
56.5 2400 0.8728
56.5 2400 0.8728
56.0 2400 0.8728
56.5 2400 0.8728
57.1 2400 0.8728
56.5 2400 0.8728 |
Okay, not a dramatic difference, but not nothing either. Since the trip points are at 50 °C and 60 °C, the fan speed should be the same in both cases as well. |
Well, it's not a big delta indeed. Configured with the minimum frequencies can gain 1-2c and after a long while with low load can go down to 47-48c. temp clock volt
49.4 1800 0.8014
48.8 1800 0.7885
48.3 1100 0.8014
48.8 1800 0.8014
48.8 1800 0.8014
48.3 1800 0.8014
48.8 1800 0.8014
48.3 1800 0.8014
49.4 1800 0.7885
48.8 1800 0.7885
48.8 1800 0.7885
49.4 1800 0.8014
48.8 1800 0.8014
48.8 1800 0.8014
48.3 1800 0.7885
48.8 1800 0.8014
49.4 1800 0.7200
49.4 1800 0.7885
48.8 1800 0.7949
49.4 1800 0.8014
48.3 1800 0.8014
48.8 1800 0.7885
48.3 1800 0.8014
49.4 1800 0.7885
48.8 1100 0.8014 |
My temp dropped about 8-10 °C when I removed initial turbo. I guess the difference with you is that I've edited my fan profile, so fan start early to spin instead the stock values:
|
|
I have bug which is specific to dietpi, it can't be reproduced on raspbian with the same kernel. The network I/O is slower than it should be; the answer to ping is about 2/3 ms, it should be below 1 ms same as raspbian.
Luckily, there's an easy and very weird solution
That's enough to fix it somehow....
The power consumption of the pi5 is now 2.7W instead of 2.2W and, unlike before, there's no way to reduce it. |
vcgencmd get_config isp_freq Did you apply any other overlocking settings? AFAIK |
Yes it's the default, that's why the solution is weird... If it's explicitly set to 910 works fine, as it should. |
Did you check back the value with this command with and without the setting applied? And when you say "Raspbian", do you mean Raspberry Pi OS 32-bit or 64-bit, and did you compare with the same DietPi? |
The value reported is always 910: root@DietPi5:~# vcgencmd get_config isp_freq
isp_freq=910 2 different Pi5; 4GB with NOOBS and Pi OS 64-bit, 8GB with DietPi 9.0.2 They both have the same kernel: |
Do they have the same EEPROM/bootloader version as well? In case: FIRMWARE_RELEASE_STATUS=latest rpi-eeprom-update -a |
Yes both the same, the 5th of Jan: root@DietPi5:~# rpi-eeprom-update -a
BOOTLOADER: up to date
CURRENT: Fri Jan 5 15:57:40 UTC 2024 (1704470260)
LATEST: Fri Jan 5 15:57:40 UTC 2024 (1704470260)
RELEASE: default (/lib/firmware/raspberrypi/bootloader-2712/default)
Use raspi-config to change the release. I checked cause I was curious if running the Pi OS would update the eeprom to the 24th Jan release. |
No need to install RPi OS to check this. We use the same repo and same package, so DietPi systems get exactly the same kernel and bootloader packages offered at exactly the same time 😉. This is also why I am confused that both behave differently as you say regarding the USB Ethernet speed, on top of the wired solution of applying Does anyone else here have a USB Ethernet adapter to test, at best a 2.5G one? Onboard Ethernet performs normal? And you can perfectly toggle the USB NIC speed by adding/removing the setting? And how did you actually found out that this particular setting toggles it, given that it is (should be) completely unrelated? 😄 |
I just tried it again on the Pi 5, which got debian, eeprom and dietpi updates in the meantime and it does work normally. Not sure how the video clock is connected but it's not surprising with this SoC; some unusual things, like access to the L2 cache goes thru the Videocore. I found it out because I constantly monitor ping answers times to check for instability. This is the normal answer: root@solidpc:~# ping 192.168.178.11
PING 192.168.178.11 (192.168.178.11) 56(84) bytes of data.
64 bytes from 192.168.178.11: icmp_seq=1 ttl=64 time=0.409 ms
64 bytes from 192.168.178.11: icmp_seq=2 ttl=64 time=0.400 ms
64 bytes from 192.168.178.11: icmp_seq=3 ttl=64 time=0.367 ms
64 bytes from 192.168.178.11: icmp_seq=4 ttl=64 time=0.600 ms
64 bytes from 192.168.178.11: icmp_seq=5 ttl=64 time=1.04 ms
64 bytes from 192.168.178.11: icmp_seq=6 ttl=64 time=0.410 ms
64 bytes from 192.168.178.11: icmp_seq=7 ttl=64 time=0.368 ms
^C
--- 192.168.178.11 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6012ms
rtt min/avg/max/mdev = 0.367/0.512/1.035/0.225 ms Specifying |
Ah good, probably the bootloader update fixed this as well. Just checked, and the one which fixes also
And yes, I wouldn't rule it out either that the video core frequency affects other things. It is known that the core frequency |
Creating a bug report/issue
Required Information
cat /boot/dietpi/.version
echo $G_DISTRO_NAME $G_RASPBIAN
uname -a
echo $G_HW_MODEL_NAME
or (EG: RPi3)Additional Information (if applicable)
Steps to reproduce
Expected behaviour
Actual behaviour
Extra details
The text was updated successfully, but these errors were encountered: