CPU Throttling more on 4.9 than 4.4

We recently upgraded to a 4.9 kernel and see that the freq of all cores is throttled to lower frequencies when the device is not busy than it used to be on kernel 4.4. Even when setting /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq = /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq = 2035200 (the max possible freq value, /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_cur_freq changes a lot, between 2035000 and goes as low as 1890000.

root@TX2:~ /usr/bin/jetson_clocks.sh --show
SOC family:tegra186 Machine:quill
Online CPUs: 0-5
CPU Cluster Switching: Disabled
cpu0: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c7=0
cpu1: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c6=0 c7=0
cpu2: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c6=0 c7=0
cpu3: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c7=0
cpu4: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c7=0
cpu5: Online=1 Governor=performance MinFreq=2035200 MaxFreq=2035200 CurrentFreq=2035200 IdleStates: C1=0 c7=0
GPU MinFreq=1300500000 MaxFreq=1300500000 CurrentFreq=1300500000
EMC MinFreq=40800000 MaxFreq=1866000000 CurrentFreq=1866000000 FreqOverride=1
Fan: speed=0

Did anything change in the handling of the cpu frequencies? Is it possible to reduce the throttling and keep the freq as high as possible?

We did a few performance tests and the throttling behavior leads to a slight performance degradation. We need to have the max performance at all time. Does anybody have a hint how to debug this issue or how that could be related to the upgrade?

Did you run below command?

sudo nvpmodel -m 0
sudo jetson_clocks

We do
sudo nvpmodel -m 5
sudo jetson_clocks

where model 5 sets all the min and max clocks to the max values and the governor to performance. The software side does not see any throttling or transitions between freq domains. But when we do a cat /sys/devices/system/cpu/cpufreq/policy*/cpuinfo_cur_freq, the freq jumps around a lot between 2035200 and around 1880000.

Any other ideas?

Hi cquast,
We are not seeing such big deviations.
Could you try other nvpmodel modes or disable MAX-Q with ‘nvpmodel -m 0’ and share ‘/home/ubuntu/tegrastats’ results from your tests.

@cquast

Are you using TX2 module with your own base board? The clocks are not expected to be throttled when device is idle. Please share the value of below debugfs nodes when clocks are being throttled to check if any over current or Under Voltage event is triggered.

cat /sys/kernel/debug/bpmp/debug/soctherm/oc/oc_1/event_cnt
cat /sys/kernel/debug/bpmp/debug/soctherm/oc/oc_3/event_cnt
cat /sys/kernel/debug/bpmp/debug/soctherm/oc/oc_5/event_cnt

OC1 → Under Voltage
OC3 & OC5 → Over Current

This is on a idle system where the system is really not busy. You already see that the cpuinfo_cur_freq is changing a lot:

root@TX2:~ while [ 1 ]; do cat /sys/kernel/debug/bpmp/debug/soctherm/oc/oc_/event_cnt; cat /sys/devices/system/cpu/cpufreq/policy/cpuinfo_cur_freq ; sleep 1;done
0
0
0
0
0
0
1989000
2034000
0
0
0
0
0
0
1881000
1948000
0
0
0
0
0
0
1903000
1984000
0
0
0
0
0
0
1958000
2035000
0
0
0
0
0
0
2045000
2034000
0
0
0
0
0
0
1959000
2035000
0
0
0
0
0
0
1870000
1949000
0
0
0
0
0
0
2045000
1998000
0
0
0
0
0
0
1906000
2004000
0
0
0
0
0
0
2034000
1930000
0
0
0
0
0
0
1899000
1950000

This is on a system where I started a program that occupies the 3 cores at 100%. You see that after a short time, the freq are going to their max values:

root@TX2:~ while [ 1 ]; do cat /sys/kernel/debug/bpmp/debug/soctherm/oc/oc_/event_cnt; cat /sys/devices/system/cpu/cpufreq/policy/cpuinfo_cur_freq ; sleep 1;done
0
0
0
0
0
0
1987000
2034000
0
0
0
0
0
0
1904000
1992000
0
0
0
0
0
0
2034000
2035000
0
0
0
0
0
0
2039000
2035000
0
0
0
0
0
0
2034000
2035000
0
0
0
0
0
0
2042000
2034000

@cquast
The OC event_cnt is zero, so the clocks are not throttled. Please try printing frequency after disabling CCplex idle states and increased freq_compute_delay.

cat /sys/kernel/debug/tegra_cpufreq/B_CLUSTER/cc3/enable
cat /sys/kernel/debug/tegra_cpufreq/M_CLUSTER/cc3/enable
echo 2000 > /sys/kernel/debug/tegra_cpufreq/freq_compute_delay

@rkasirajan It does not change the behavior of the system. :(

@sumitg

Executing /usr/bin/tegrastats:

RAM 162/7853MB (lfb 1843x4MB) CPU [0%@1955,7%@2003,0%@2035,0%@1978,0%@1949,2%@1950] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@29.5C MCPU@29.5C PMIC@100C Tboard@25C GPU@29.5C BCPU@29.5C thermal@29.5C Tdiode@27C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/16 VDD_IN 2911/3570 VDD_SYS_CPU 459/1086 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [0%@2037,1%@2001,7%@2035,0%@1959,0%@1955,0%@1947] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@29.5C MCPU@29.5C PMIC@100C Tboard@25C GPU@29.5C BCPU@29.5C thermal@29.5C Tdiode@27C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/16 VDD_IN 2911/3563 VDD_SYS_CPU 459/1080 VDD_SYS_DDR 1092/1092

##### Here I started my test programming using 2 Denver cores and 1 ARM core 100%

RAM 162/7853MB (lfb 1843x4MB) CPU [0%@1956,8%@2035,1%@2034,0%@2035,0%@2035,1%@2040] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@29.5C MCPU@29.5C PMIC@100C Tboard@25C GPU@29.5C BCPU@29.5C thermal@29.5C Tdiode@27.25C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/16 VDD_IN 2987/3558 VDD_SYS_CPU 536/1075 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [0%@2033,75%@2034,74%@2035,0%@2032,7%@2034,74%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@25C GPU@29.5C BCPU@30.5C thermal@29.5C Tdiode@27.25C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/16 VDD_IN 5243/3574 VDD_SYS_CPU 2755/1091 VDD_SYS_DDR 1092/1092
RAM 163/7853MB (lfb 1843x4MB) CPU [47%@2035,100%@2034,100%@2034,0%@2038,6%@2040,56%@2042] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30C BCPU@31C thermal@30.1C Tdiode@27.5C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/16 VDD_IN 5625/3593 VDD_SYS_CPU 3136/1110 VDD_SYS_DDR 1092/1092
RAM 163/7853MB (lfb 1843x4MB) CPU [100%@2041,100%@2035,100%@2036,2%@2042,9%@2040,0%@2033] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30C BCPU@31C thermal@30.3C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/16 VDD_IN 5664/3613 VDD_SYS_CPU 3136/1129 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2039,100%@2035,100%@2036,0%@2035,6%@2035,0%@1990] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30C BCPU@31C thermal@30.3C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5664/3632 VDD_SYS_CPU 3136/1148 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2034,100%@2035,100%@2034,2%@1990,7%@2037,0%@2040] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30.5C BCPU@31C thermal@30.8C Tdiode@28C VDD_SYS_GPU 153/159 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5664/3650 VDD_SYS_CPU 3136/1166 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2035,100%@2034,100%@2034,2%@2037,8%@2040,0%@2036] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31.5C MCPU@31.5C PMIC@100C Tboard@25C GPU@30.5C BCPU@31.5C thermal@30.6C Tdiode@28C VDD_SYS_GPU 229/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5587/3668 VDD_SYS_CPU 3060/1183 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2034,100%@2033,100%@2034,2%@2037,7%@2034,1%@2038] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30.5C BCPU@31C thermal@30.8C Tdiode@28.25C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5549/3685 VDD_SYS_CPU 3060/1200 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2035,100%@2035,100%@2034,1%@2034,8%@2035,0%@2034] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31.5C MCPU@31.5C PMIC@100C Tboard@25C GPU@30.5C BCPU@31.5C thermal@30.8C Tdiode@28C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5549/3701 VDD_SYS_CPU 3060/1217 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@1992,100%@2034,100%@2035,1%@2034,8%@1995,0%@1991] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31.5C MCPU@31.5C PMIC@100C Tboard@25C GPU@30.5C BCPU@31.5C thermal@30.8C Tdiode@28.25C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 5549/3718 VDD_SYS_CPU 3060/1233 VDD_SYS_DDR 1092/1092
RAM 161/7853MB (lfb 1843x4MB) CPU [85%@1957,85%@2035,85%@2035,1%@2044,7%@2037,2%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@31C MCPU@31C PMIC@100C Tboard@25C GPU@30.5C BCPU@31C thermal@30.8C Tdiode@28.5C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/15 VDD_IN 4786/3727 VDD_SYS_CPU 2296/1242 VDD_SYS_DDR 1092/1092
RAM 161/7853MB (lfb 1843x4MB) CPU [0%@1992,0%@2034,0%@2034,0%@2034,7%@2033,0%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@25C GPU@30.5C BCPU@30.5C thermal@30.5C Tdiode@28C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/14 VDD_IN 3026/3721 VDD_SYS_CPU 536/1236 VDD_SYS_DDR 1092/1092


##### Here I started my test programming using 2 Denver cores and 1 ARM core 25% of the time, so throttling occurs

RAM 162/7853MB (lfb 1843x4MB) CPU [0%@1958,1%@2033,0%@2035,2%@2034,7%@2036,0%@1993] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30C Tdiode@28C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 134/16 VDD_IN 3064/3715 VDD_SYS_CPU 459/1229 VDD_SYS_DDR 1092/1092
RAM 161/7853MB (lfb 1843x4MB) CPU [0%@1958,0%@2034,0%@2035,2%@1994,7%@2040,0%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30C MCPU@30C PMIC@100C Tboard@26C GPU@30C BCPU@30C thermal@30C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 364/18 VDD_IN 3332/3712 VDD_SYS_CPU 459/1223 VDD_SYS_DDR 1092/1092
RAM 161/7853MB (lfb 1843x4MB) CPU [0%@2034,2%@2035,1%@2035,2%@2033,7%@1993,0%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 76/19 VDD_IN 3064/3707 VDD_SYS_CPU 536/1217 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [0%@1993,0%@2035,2%@2035,9%@2009,0%@2035,0%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30C MCPU@30C PMIC@100C Tboard@26C GPU@30C BCPU@30C thermal@30C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/19 VDD_IN 2949/3700 VDD_SYS_CPU 459/1211 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [0%@1959,5%@2034,0%@2035,6%@2028,0%@2035,0%@2033] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30C MCPU@30C PMIC@100C Tboard@26C GPU@30C BCPU@30C thermal@30C Tdiode@27.5C VDD_SYS_GPU 153/159 VDD_SYS_SOC 766/765 VDD_4V0_WIFI 0/19 VDD_IN 2949/3694 VDD_SYS_CPU 536/1205 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [34%@2045,34%@2035,7%@2035,0%@2036,7%@2038,0%@2034] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@29.5C BCPU@30.5C thermal@30.1C Tdiode@27.5C VDD_SYS_GPU 229/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 3713/3694 VDD_SYS_CPU 1225/1205 VDD_SYS_DDR 1111/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2041,91%@2035,10%@2035,0%@2043,0%@2042,0%@2043] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30.1C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 3981/3696 VDD_SYS_CPU 1531/1208 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2036,91%@2034,14%@2034,0%@1998,0%@2034,0%@2045] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30.3C Tdiode@27.75C VDD_SYS_GPU 229/161 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 4058/3699 VDD_SYS_CPU 1531/1211 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2045,91%@2034,14%@2034,0%@2042,0%@2040,0%@2043] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30.3C Tdiode@27.75C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 4096/3703 VDD_SYS_CPU 1608/1214 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2041,91%@2034,9%@2034,3%@2043,0%@2040,0%@2040] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30C BCPU@30.5C thermal@30.3C Tdiode@28C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 4058/3705 VDD_SYS_CPU 1531/1216 VDD_SYS_DDR 1092/1092
RAM 162/7853MB (lfb 1843x4MB) CPU [100%@2038,91%@2034,14%@2034,0%@2044,0%@2046,0%@2042] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@30.5C MCPU@30.5C PMIC@100C Tboard@26C GPU@30.5C BCPU@30.5C thermal@30.3C Tdiode@28C VDD_SYS_GPU 153/160 VDD_SYS_SOC 765/765 VDD_4V0_WIFI 0/18 VDD_IN 4020/3708 VDD_SYS_CPU 1531/1219 VDD_SYS_DDR 1092/1092

It does not look like there is a whole lot of throttling happening during the execution. Do you have any idea why our measurements where that different?

Could you help explain the problem again. Here, cpufreq is increasing in both cases “2 Denver cores and 1 ARM core 100%” & “2 Denver cores and 1 ARM core 25% of the time”.
Please use “tegrastats” or “/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq” to dump cpufreq and compare. Also, please disable cpuidle by setting ‘1’ to respective cpu nodes “/sys/devices/system/cpu/cpu0/cpuidle/state*/disable” or disable cpuidle from defconfig.

@sumitg We want the CPU freq to be at max all the time, and not to go down to 1958 even when the CPU is idle.

We already disabled cpuidle per default:

root@TX2:~ cat /sys/devices/system/cpu/cpu0/cpuidle/state*/disable
1
1
1 Like

could you try below steps:

  1. Disable pmqos:
    echo 0 > /sys/module/qos/parameters/enable
  2. Disable CC3 in T186:
    echo 0 > /sys/kernel/debug/tegra_cpufreq/M_CLUSTER/cc3/enable
    echo 0 > /sys/kernel/debug/tegra_cpufreq/B_CLUSTER/cc3/enable
  3. Set userspace governor
    echo “userspace” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  4. Set max freq for all cores.
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

@sumitg: That looks better! The freq still goes down sometimes, but mostly, it’s around the max frequency:

...
RAM 165/7853MB (lfb 1838x4MB) CPU [0%@2034,0%@2034,16%@2035,6%@2035,2%@2035,0%@2035] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@36C GPU@40C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/791 VDD_4V0_WIFI 0/0 VDD_IN 3140/3368 VDD_SYS_CPU 612/836 VDD_SYS_DDR 1113/1112
RAM 165/7853MB (lfb 1838x4MB) CPU [0%@2035,10%@2034,8%@2035,7%@2037,1%@2033,0%@2031] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@36C GPU@40.5C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/790 VDD_4V0_WIFI 0/0 VDD_IN 3179/3366 VDD_SYS_CPU 612/834 VDD_SYS_DDR 1113/1112
RAM 164/7853MB (lfb 1838x4MB) CPU [0%@2023,15%@2035,8%@2034,0%@2022,0%@2026,0%@2021] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@36C GPU@40.5C BCPU@40.5C thermal@40.5C Tdiode@39C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/790 VDD_4V0_WIFI 0/0 VDD_IN 3255/3365 VDD_SYS_CPU 689/833 VDD_SYS_DDR 1113/1112
RAM 164/7853MB (lfb 1838x4MB) CPU [0%@2040,10%@2035,5%@2034,0%@2039,0%@2042,0%@2039] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@36C GPU@40C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/790 VDD_4V0_WIFI 287/2 VDD_IN 3409/3365 VDD_SYS_CPU 536/829 VDD_SYS_DDR 1113/1112
RAM 164/7853MB (lfb 1838x4MB) CPU [0%@1976,8%@2035,20%@2034,0%@2020,2%@2019,0%@2021] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@36C GPU@40.5C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/790 VDD_4V0_WIFI 345/6 VDD_IN 3523/3367 VDD_SYS_CPU 612/827 VDD_SYS_DDR 1113/1112
RAM 165/7853MB (lfb 1838x4MB) CPU [0%@1973,15%@2035,8%@2035,1%@2020,0%@2024,2%@2019] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@37C GPU@40.5C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/789 VDD_4V0_WIFI 19/6 VDD_IN 3179/3365 VDD_SYS_CPU 612/825 VDD_SYS_DDR 1113/1112
RAM 164/7853MB (lfb 1838x4MB) CPU [0%@2034,9%@2033,16%@2035,0%@2016,0%@2022,0%@2019] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@37C GPU@40.5C BCPU@40.5C thermal@40.3C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/789 VDD_4V0_WIFI 0/6 VDD_IN 3179/3363 VDD_SYS_CPU 612/823 VDD_SYS_DDR 1113/1112
RAM 165/7853MB (lfb 1838x4MB) CPU [1%@2022,23%@2035,1%@2034,0%@2017,0%@2037,0%@2041] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@37C GPU@40C BCPU@40.5C thermal@40.5C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 766/789 VDD_4V0_WIFI 0/6 VDD_IN 3217/3362 VDD_SYS_CPU 689/821 VDD_SYS_DDR 1113/1112
RAM 164/7853MB (lfb 1838x4MB) CPU [0%@2033,9%@2035,8%@2034,0%@2033,0%@2021,2%@2037] EMC_FREQ 0%@1866 GR3D_FREQ 0%@1300 APE 150 MTS fg 0% bg 0% PLL@40.5C MCPU@40.5C PMIC@100C Tboard@37C GPU@40.5C BCPU@40.5C thermal@40.3C Tdiode@38.75C VDD_SYS_GPU 229/229 VDD_SYS_SOC 842/789 VDD_4V0_WIFI 0/6 VDD_IN 3140/3359 VDD_SYS_CPU 612/819 VDD_SYS_DDR 1113/1112
...

Two questions though:

  1. Why is the userspace governor better for this case? Why did you only set the governor for cpu0, not for the Denver cores?
  2. Why does the freq still change a bit? What is the change dependent on? Is it a hardware configuration?

Userspace governor is used for setting a particular freq. In the previous post, I meant about setting userspace governor for all CPU’s for which you want s specific frequency. Didn’t mean to set only CPU0.
There can be a slight delta between what we set and the actual hardware freq due to factors like noise, measurement error, etc.
In one experiment, can you try only (1) & (2) steps from the previous post and share if only that is required or you need all steps.

For some reason, I thought you could succeed in making the freq stable, but based on you explanations I understand now that this is not possible in the physical world.

This command seems to have the biggest effect:

echo 0 > /sys/kernel/debug/tegra_cpufreq/B_CLUSTER/cc3/enable

Thank you for the explanations!

1 Like