CPU freq and num of cores

From Variscite Wiki
Revision as of 14:24, 5 August 2024 by Nate (talk | contribs)
Warning: This page is designed to be used with a 'release' URL parameter.

This page is using the default release mx8mp-yocto-mickledore-6.1.36_2.1.0-v1.2.
To view this page for a specific Variscite SoM and software release, please follow these steps:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release



Set the CPU freq. and number of active cores


If your motivation is to simulate a weaker SOC model (for example, simulate an i.MX6Solo using an i.MX6Quad),

note that there are a few other differences between some of the i.MX SOC models, like RAM bus width (32bit on the Solo, 64bit on the Quad) and some graphics acceleration features.
See all the differences in the following comparison tables:
https://www.nxp.com/docs/en/supporting-information/FLYRIMXPRDCMPR.pdf
https://www.nxp.com/docs/en/supporting-information/IMX8LAYERCMPR.pdf


CPU frequencies

Governors:
There are several frequency governors which determine the frequency policy.
The default frequency governor is "ondemand", which sets the CPU frequency depending on the current system load.
(Note: the default governor is selected in the kernel defconfig. You can choose a different default governor using menuconfig before building the kernel - to reach this setting, go to: CPU Power Management -> CPU Frequency scaling -> Default CPUFreq governor)

To list all available governors:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

To read about the different governors, see the following page from the Linux documentation:
https://github.com/varigit/linux-imx/blob/5.4-2.1.x-imx_var01/Documentation/admin-guide/pm/cpufreq.rst

To set the current governor:

# echo GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

(GOVERNOR being one of the available governors)

Useful commands:
To see the available CPU frequencies:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies


To see the current CPU frequency:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq


Common scenarios:
1. Use the default "ondemand" governor and limit the maximum allowed CPU freq. using the following commands:

To see the current maximum allowed CPU frequency:

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq


To set the maximum allowed CPU frequency:

# echo FREQ > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

(FREQ being one of the available CPU frequencies)

2. Use the "userspace" governor and set the CPU to a specific frequency using the following command:

# echo FREQ > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

(FREQ being one of the available CPU frequencies)