CPU cores always run at highest frequency... why?

Hello,

I don’t execute /usr/bin/jetson_clocks manually to fix the CPU frequency. So can I assume that if CPU is idle it will down-clock based on available frequencies table?

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
schedutil

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
102000 204000 307200 403200 518400 614400 710400 825600 921600 1036800 1132800 1224000 1326000 1428000 1479000

However, I don’t see it’s scaling down. All four CPU cores runs at highest frequency all the time. What am I missing here?

$ cat /sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_min_freq
102000
102000
102000
102000

$ cat /sys/devices/system/cpu/cpu?/cpufreq/cpuinfo_cur_freq
1479000
1479000
1479000
1479000

-albertr

Here’s some weirdness about this nano board:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1200000

$ echo 102000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1200000

$ id
uid=0(root) gid=0(root) groups=0(root)

Anyone has an idea why I doesn’t go lower than 1200000?

I can increase the min value, but cannot decrease it past 1200000?? On the other nano, I can go lower than 1200000, weird.

$ echo 1428000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1428000

$ echo 102000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1200000

It looks like this Nano has a hard stop at 1200000 and just cannot go lower than that. Any idea?

-albertr

hello albertr,

had you configure nvpmodel to switch power modes.
could you please refer to Supported Modes and Power Efficiency for the table which shows the power modes.
please also enable tegrastats utility to monitor the usage dynamically.
thanks

Hello Jerry,

Yes, nvpmodel was configured for MAXN mode, i.e.:

$ nvpmodel -q
NVPM WARN: fan mode is not set!
NV Power Mode: MAXN
0

tegrastats just confirms that cpu cores don’t go lower than 1200000 frequency:

$ tegrastats
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [19%@1224,1%@1224,2%@1224,0%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@30C CPU@34C PMIC@100C GPU@34C AO@37C thermal@34C POM_5V_IN 1752/1752 POM_5V_GPU 0/0 POM_5V_CPU 341/341
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [20%@1224,2%@1224,0%@1224,0%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@30C CPU@34C PMIC@100C GPU@34C AO@36.5C thermal@34C POM_5V_IN 1752/1752 POM_5V_GPU 0/0 POM_5V_CPU 341/341
RAM 328/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [21%@1224,3%@1224,1%@1224,1%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@30C CPU@34C PMIC@100C GPU@34C AO@37C thermal@34C POM_5V_IN 1752/1752 POM_5V_GPU 0/0 POM_5V_CPU 342/341
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [20%@1224,1%@1224,0%@1224,2%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@30C CPU@33.5C PMIC@100C GPU@34C AO@37C thermal@34C POM_5V_IN 1710/1741 POM_5V_GPU 0/0 POM_5V_CPU 298/330
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [20%@1224,1%@1224,2%@1224,0%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@29.5C CPU@34C PMIC@100C GPU@33.5C AO@37C thermal@33.5C POM_5V_IN 1752/1743 POM_5V_GPU 0/0 POM_5V_CPU 341/332
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [20%@1224,1%@1224,1%@1224,2%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@30C CPU@34C PMIC@100C GPU@34C AO@37C thermal@33.75C POM_5V_IN 1752/1745 POM_5V_GPU 0/0 POM_5V_CPU 341/334
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [19%@1224,2%@1224,0%@1224,2%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@29.5C CPU@33.5C PMIC@100C GPU@33.5C AO@37C thermal@34C POM_5V_IN 1752/1746 POM_5V_GPU 0/0 POM_5V_CPU 341/335
RAM 329/3964MB (lfb 654x4MB) SWAP 0/4030MB (cached 0MB) IRAM 0/252kB(lfb 252kB) CPU [20%@1224,1%@1224,2%@1224,1%@1224] EMC_FREQ 0%@1600 GR3D_FREQ 0%@76 APE 25 PLL@29.5C CPU@34C PMIC@100C GPU@33.5C AO@37C thermal@33.75C POM_5V_IN 1752/1746 POM_5V_GPU 0/0 POM_5V_CPU 341/335

Do you know why? And why I cannot write lower frequencies to /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq ?

-albertr

hello albertr,

because you’re already in the maximum performance mode. please switch back to normal power mode for customization.
thanks

Thanks Jerry, but I’m not sure I understand how you suggestion would affect it. I’m in MAXN nvpmode on the second Nano too, but its CPU cores are using lower frequencies.
Anyways, I switched this Nano from MAXN (mode 0) to 5W (mode 1), but the issue still remains, please see below:

$ nvpmodel -q
NVPM WARN: fan mode is not set!
NV Power Mode: 5W
1

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
921600

$ echo 102000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
921600

$ uptime
10:10:09 up 23:11, 1 user, load average: 0.05, 0.08, 0.03

Why with such low CPU load it doesn’t want to go lower that 921MHz? My second Nano can go to 102MHz with no problem…

-albertr

hello albertr,

may I know which JetPack release it is.
could you please share the results of jetson_clocks, please enable --show options to display current settings.
for example,

$ sudo jetson_clocks --show

Jerry, please see below…

$ dpkg-query --show nvidia-l4t-core
nvidia-l4t-core 32.3.1-20191209225816

Looks like JetPack 4.3?

$ jetson_clocks.orig --show
SOC family:tegra210 Machine:NVIDIA Jetson Nano Developer Kit
Online CPUs: 0-3
CPU Cluster Switching: Disabled
cpu0: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu1: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu2: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
cpu3: Online=1 Governor=schedutil MinFreq=1200000 MaxFreq=1479000 CurrentFreq=1479000 IdleStates: WFI=1 c7=1
GPU MinFreq=76800000 MaxFreq=921600000 CurrentFreq=76800000
EMC MinFreq=204000000 MaxFreq=1600000000 CurrentFreq=1600000000 FreqOverride=0
Fan: speed=0
NV Power Mode: MAXN

Let me know what do you think…

-albertr

hello albertr,

please have a try to adjust CPU frequency within the range of jetson_clocks reports. thanks
i.e. MinFreq=1200000 MaxFreq=1479000

Hi Jerry,

1200000 is the lowest frequency this Nano can use, please see below:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1200000

$ echo 102000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
1200000

However, that’s not right. I’d like it to go all the way down to 102000, like the other Nano I have.
Why it’s limited to 1200000 when the other Nano can do 102000 (both are using MAXN model)?

Thanks,
-albertr

hello albertr,

may I know what’s the difference between these two Nano platforms.
did they based-on the same JetPack release?
thanks

Hi Jerry,

I don’t know what is the difference - that’s what I’m trying to figure out.
JetPack releases are different. The one without issue is running somewhat older release, i.e.:

root@nano:~# dpkg-query --show nvidia-l4t-core
nvidia-l4t-core 32.2.3-20191105135548

I was hoping that you can give me some instructions on how to troubleshoot it. Let me know what you think.
Thanks.

Albert Rybalkin

hello albertr,

please check the JetPack release version, and please list the details about which release version you got failures.
for example, $ cat /etc/nv_tegra_release

BTW,
since JetPack-4.4 / l4t-r32.4.3 is now the latest production release,
could you please upgrade the release version to have confirmation.
thanks

Jerry,

/etc/nv_tegra_release doesn’t exist on newer releases?

cat /etc/nv_tegra_release

cat: /etc/nv_tegra_release: No such file or directory

I’m using the version of nvidia-l4t-core package to see which JetPack release is it, i.e.:

dpkg-query --show nvidia-l4t-core

nvidia-l4t-core 32.2.3-20191105135548

So we have two Nanos here, one with the older JetPack release that can downclock cores properly, and the other (with a newer JetPack release) that cannot. What makes you think that the ever newer JetPack release will help to fix this issue? Regardless, we cannot upgrade JetPack on that Nano, since there’re some custom applications which we cannot risk to break by upgrading packages.

Any other suggestions?
Thanks,
-albertr

Hi albertr,

This known issue already resolved.
You can check from L4T Release Note.
Please check JetPack-4.4, issue fixed. Thanks!

Thanks Carolyuu. Can you paste the relevant snippet from Release notes here? I’m asking because this link doesn’t work…

Thanks,
-albertr

Hi albertr,

You can find from NVIDIA Download Center.

Yeah, I know. The Release Notes are rather large file, I thought you can post a relevant blob on this specific problem from the Notes… Can you?

-albertr

Hi albertr,

Sorry for misunderstand you.
For my #15 comment, this is reply /etc/nv_tegra_release not exist issue.
Please check cpu frequency issue with the latest JetPack-4.4 GA. Thanks!

Oh, your original comment gave me so much hope, but now I’m back to reality.
I can try to boot the same linux kernel on the other nano and see if it could help.
-albertr