# Customize Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) Customization is a process that involves fine-tuning various aspects of the system, which can significantly affect the system’s overall performance and power. The areas that can be fine-tuned include the CPU scheduler, CPU frequency governor, DVFS governor, perflock, and memory. It is recommended to undertake any tuning only after gaining a thorough understanding through extensive performance and power analysis. Caution: Any customization can impact the device’s power and performance. Therefore, it is crucial to verify the impact across all the relevant use cases before performing any customization. ## Customize CPU scheduler Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) You can customize features of the CPU scheduler, such as PELT and UCLAMP schedulers. For more information on these features, see [CPU scheduler](https://docs.qualcomm.com/doc/80-70014-10/topic/2-performance-features.html#cpu-scheduler). ### PELT half-life at runtime The PELT half-life is the time it takes for the PELT signal to reach a 50% load, starting from zero. By default, the kernel value is set to 32 milliseconds, indicating that it takes 32 milliseconds for the scheduler to recognize the task load as 50%. Choosing a lower value results in a faster PELT ramp-up time, which can speed up the time needed for the signal to stabilize and accurately represent the task demands. However, this choice also correspondingly reduces the decay time. The PELT multiplier is configured through the following kernel command-line argument in the source code at layers/meta-qti-bsp/conf/machine/qcm6490.conf. kernel.sched_pelt_multiplier=[1, 2, 4] Default value: 1 (half life 32msec), 2 (half life 16msec), 4 (half life 8msec)]Copy to clipboard For more information on PELT half-life, see [sched/pelt: Change PELT halflife at runtime](https://lwn.net/Articles/906375/). ### UCLAMP UCLAMP is a scheduler feature that allows user space to manage the task performance requirements. It is a hinting mechanism that helps the scheduler understand the performance demands and limitations of the tasks, thereby assisting the scheduler in making informed decisions. When the `schedutil` CPU frequency governor is used, UCLAMP also influences the CPU frequency selection. The UCLAMP value ranges from 0 to 1024. The following parameters can be customized for UCLAMP: - `sched_util_clamp_min` – This parameter sets the minimum acceptable performance level for individual tasks and task groups, ensuring that tasks receive sufficient resources to operate effectively, even during periods of low demand. Any requested `uclamp.min` value for a task cannot exceed `sched_util_clamp_min`. - For the scheduler, it acts as a lower bound on the PELT signal, which tracks task utilization. - For the CPU frequency, it instructs the governor to select a frequency that can meet the performance needs of the task, thus ensuring responsiveness and efficiency. The Qualcomm-tuned value is 1024. You can set this parameter by running the following command: echo 1024 > /proc/sys/kernel/sched_util_clamp_minCopy to clipboard - `sched_util_clamp_max` – This parameter sets the maximum acceptable performance level for individual tasks and task groups. It ensures that tasks do not consume excessive resources, preventing resource contention and system instability. Any requested `uclamp.max` value for a task cannot exceed `sched_util_clamp_max`. - For the scheduler, it acts as a ceiling on the PELT signal, which tracks the task utilization. - For the CPU frequency, if the task demands exceed the available frequency, the governor may adjust the frequency to prevent excessive power consumption. The Qualcomm-tuned value is 1024. You can set this parameter by running the following command: echo 1024 > /proc/sys/kernel/sched_util_clamp_maxCopy to clipboard - `sched_util_clamp_min_rt_default` – By default, the RT tasks always run at the highest frequency and highest CPU capacity. This parameter allows you to change the default behavior of an RT task when UCLAMP is being used. It enables tuning the best value for an RT task, offering good performance without pushing it to the maximum performance point. This addresses the system requirement without burning power and running at the maximum performance point all the time. The Qualcomm-tuned value is 128. You can set this parameter by running the following command: echo 128 > /proc/sys/kernel/sched_util_clamp_min_rt_defaultCopy to clipboard For more information on UCLAMP, see [https://docs.kernel.org/scheduler/sched-util-clamp.html](https://docs.kernel.org/scheduler/sched-util-clamp.html). ## Customize CPU frequency governor Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) You can set a CPU governor frequency using the `scaling_governor` to enhance CPU performance. Table : Commands to customize the CPU frequency governor | Command | Purpose | | --- | --- | | echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governorCopy to clipboard




echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governorCopy to clipboard




echo performance > /sys/devices/system/cpu/cpufreq/policy7/scaling_governorCopy to clipboard | Sets the CPU governor to enhance the system performance. | | cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governorCopy to clipboard




cat /sys/devices/system/cpu/cpufreq/policy4/scaling_governorCopy to clipboard




cat /sys/devices/system/cpu/cpufreq/policy7/scaling_governorCopy to clipboard | Verifies the CPU frequency governor. | | echo schedutil > /sys/devices/system/cpu/cpufreq/policy0/scaling_governorCopy to clipboard




echo schedutil > /sys/devices/system/cpu/cpufreq/policy4/scaling_governorCopy to clipboard




echo schedutil > /sys/devices/system/cpu/cpufreq/policy7/scaling_governorCopy to clipboard | Sets the CPU frequency governor to
`schedutil`. | | echo 1000 > /sys/devices/system/cpu/cpufreq/policyX/schedutil/rate_limit_usCopy to clipboard | Customizes `rate_limit_us`.



The value of X in policyX corresponds to clusters 0, 4, and 7.



This is a `schedutil` governor parameter. It contains
the value in microseconds. The governor waits for
`rate_limit_us` time to re-evaluate the load
again after it has evaluated the load once. The Qualcomm-tuned value
is 1000. | ## Customize DVFS governor Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) You can customize the static map DVFS governor and BWMON governor using DTSI files according to your power and performance requirements. ### Customize static map DVFS governor You can customize the mapping between the CPU frequency and the L3/DDR frequency according to the power and performance requirements from the kernel\_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi file. In the DTSI file, for each CPU node, there is an entry with `operating-points-v2 = <&cpux_opp_table>`, where `cpux_opp_table` holds the static mapping between the CPU frequency, and L3 and DDR frequencies. For example, the following entry indicates that the CPU 0 frequency operates at 300 MHz: cpu0_opp_300mhz: opp-300000000 { opp-hz = /bits/ 64 <300000000>. pp-peak-kBps = <800000 9600000>. }; Copy to clipboard When CPU 0 operates at 300 MHz, it performs the following actions: - Votes L3 to 9600000, which is 9600000 / w(=32) = 300,000, which corresponds to 300 MHz - Votes DDR to 800000, which is 800000 / w (=4) = 200,00, which corresponds to 200 MHz In this example, w represents the number of bytes you can write in a single cycle. - For L3, this value is 32, which means one transaction per cycle at 32 bytes per transaction. - For dual-channel DDR, this value is 4. Each channel can perform two transactions per cycle (because it is DDR memory), and each transaction is of 2 bytes. For more information on the operating performance points framework, see [Generic OPP (Operating Performance Points) Bindings](https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt). The values in these tables for DDR are specified per channel. This implies that the mapping is between the CPU frequency and the bandwidth of each memory controller channel. Caution: If you change these .dtsi files, the power and performance of the device are impacted. Ensure that you verify the impact across all the relevant use cases before changing any nodes. ### Customize BWMON governor You can customize `bwmon_opp_table` for LLCC and DDR voting according to the power and performance requirements from the dtsi kernel\_platform/kernel/arch/arm64/boot/dts/qcom/sc7280.dtsi file. The table contains the DDR and LLCC frequency levels and each level translates to LLCC and DDR voting based on the traffic. For example, the following DTSI entry votes to DDR based on the CPU traffic between LLCC to DDR, which corresponds to 200 MHz as 800000 / w (where w = 4) equals 200,000. llcc_bwmon_opp_table: opp-table { compatible = "operating-points-v2"; opp-0 { opp-peak-kBps = <800000>; }; Copy to clipboard The following DTSI entry votes to LLCC based on the CPU traffic between CPU and LLCC, which corresponds to 150 MHz as 2400000 / w (where w = 16) equals 150,000: cpu_bwmon_opp_table: opp-table { compatible = "operating-points-v2"; opp-0 { opp-peak-kBps = <2400000>; }; Copy to clipboard In this example, w represents the number of bytes that you can write in a single cycle. - For DDR, this value is 4. Each channel can perform two transactions per cycle (DDR memory), and each transaction is of 2 bytes. - For LLCC, this value is 16. ## Customize perflock Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) You can run perflock APIs, execute a use case using different tuning parameters, and debug perflock issues. ### Perflock APIs To use the perflock APIs from the user space software, follow these steps: 1. Include the dynamic linking header in the source file: `#include `. 2. Load `library(libqti-perfd-client.so)` using `dlopen`. Use the `ro.vendor.extension_library` system property. 3. Load the perf\_lock\_acq() and perf\_lock\_rel() symbols using `dlsym`. 4. Declare an integer variable to store the returns of perf\_lock\_acq(). 5. Define `perf_lock_opts` with the required resource opcode and value pairs. 6. Acquire the lock with the specified optimizations using perf\_lock\_acq(). 7. Release the lock using perf\_lock\_rel(). 8. Unload the library using `dlclose` on cleanup. The following sample code shows the usage of perflock APIs: #include static void *qcopt_handle; static int (*perf_lock_acq)(int handle, int duration, int list[], int numArgs); static int (*perf_lock_rel)(int handle); static int perf_lock_handle; char opt_lib_path[PATH_MAX] = {0}; if (property_get("ro.vendor.extension_library", opt_lib_path, NULL) != 0) {if ((qcopt_handle = dlopen(opt_lib_path, RTLD_NOW)) == NULL) { error_out();} else { perf_lock_acq = (int (*)(int, int, int *, int))dlsym(qcopt_handle, "perf_lock_acq"); perf_lock_rel = (int (*)(int))dlsym(qcopt_handle, "perf_lock_rel");} } int perf_lock_opts[2] = {MPCTLV3_MIN_ONLINE_CPU_CLUSTER_BIG, 0x2}; perf_lock_handle = perf_lock_acq(perf_lock_handle, 0, perf_lock_opts, 2); : : // Code requiring perflock : : : perf_lock_rel(perf_lock_handle); Copy to clipboard ### Perflock native test The perflock native test is a tool designed to evaluate the effectiveness of specific combinations of perflock opcodes. This tool is available at /usr/bin/. You can run this utility as a use case to experiment with different tuning parameters for ``. Once the required performance improvements are confirmed, the perflock code can be integrated into your software. The following code shows the syntax: `perflock_native_test --acq ` The following are some examples of how to use the tool: - To acquire perflock for the Silver cluster with minimum frequency set to 1958400 KHz for 30 seconds, run the following command: perflock_native_test --acq 0 30000 0x44008100,1958400Copy to clipboard - To verify the minimum frequency of the Silver cluster, run the following command: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freqCopy to clipboard - To verify the perflock logging from syslog, run the following commands: cat /var/log/syslogCopy to clipboard perflock_native_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: initialize() 60: NRP: lib name libqti-perfd-client.soCopy to clipboard perflock_native_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: main() 502: NRP: resource_list[0] = 44008100 //silver core min frequency opcodeCopy to clipboard perflock_native_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: main() 502: NRP: resource_list[1] = 7a6 // silver core min freq in hexCopy to clipboard ### Debug perflock The following are some examples of logging mechanisms to debug perflock issues: - To verify if the PerfHAL service is available, run the following command: ls /usr/bin | grep perf Copy to clipboard - To verify the running status of the PerfHAL service, run the following command: systemctl status perf-halCopy to clipboard - To enable perflock logs and traces in /var/log/syslog, run the following commands: echo debug.trace.perf=1 >> /etc/build.propCopy to clipboard echo vendor.debug.trace.perf=1 >> /etc/build.propCopy to clipboard rebootCopy to clipboard ## Customize memory Source: [https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html](https://docs.qualcomm.com/doc/80-70014-10/topic/18-customize.html) You can manage virtual memory using kswapd, regulate system memory using watermark, and define memory regions for specific subsystems through memory carveouts. ### Kswapd Kswapd is a kernel thread that manages virtual memory. When the system is low on free memory, Kswapd is activated to reclaim memory by identifying less frequently used pages from the file cache and moving them to the swap space (ZRAM). Kswapd does the following: - Monitors the memory usage of the system. - Performs swapping activities in the background to maintain an optimal level of free memory. Figure : CPU utilization vs. performance using Kswapd ![](data:image/jpeg;base64,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) ### Watermark A watermark is a threshold or limit set on memory parameters that helps regulate the allocation and utilization of system memory. Table : Watermark parameters | Parameter | Description | | --- | --- | | `/proc/sys/vm/min_free_kbytes` |

  • This parameter determines the minimum amount of free memory
    that the system must maintain across all zones.


  • It ensures that a certain reserve of memory remains
    available for critical operations, such as handling atomic
    allocations, which cannot wait for memory reclamation.


  • The number of reserved free pages in each zone are
    proportional to its size.


| | `/proc/sys/vm/watermark_scale_factor` |

  • This factor controls the aggressiveness of Kswapd.


  • It defines the amount of memory left in a system before
    Kswapd is woken up, and the amount of free memory required
    before Kswapd goes back to sleep.


  • The unit is in fractions of 10,000.


  • The default value of 10 means that the distance between the
    watermarks is 0.1% of the available memory in the node or
    system. The maximum value is 1000, or 10% of memory.


| | `/proc/sys/vm/watermark_boost_factor` |

  • This factor is used to optimize memory fragmentation by
    temporarily providing a high-watermark for the memory
    management area, which allows Kswapd to reclaim more memory.


  • The unit is in fractions of 10,000.


  • The default value of 15,000 means that up to 150% of the
    high watermark is reclaimed in the event of a pageblock
    being mixed due to fragmentation.


  • The level of reclaim is determined by the number of
    fragmentation events that occurred in the recent past. A
    boost factor of 0 disables the feature.


| For more information, see [Documentation for /proc/sys/vm/](https://www.kernel.org/doc/Documentation/admin-guide/sysctl/vm.rst). ### Memory carveout Memory carveouts refer to specific memory regions that the kernel cannot address, known as no-map regions. These regions are set aside for exclusive use by specific subsystems such as modem, camera, aDSP, cDSP, and TrustZone, and are inaccessible to the Linux kernel. These carveouts are defined in the source code at arch/arm64/boot/dts/qcom/qcm6490.dtsi. They fall under the `reserved-memory` node and can be configured. The following code shows the no-map regions for the cDSP, camera, modem, and TrustZone subsystems: reserved-memory { cdsp_secure_heap_mem: cdsp-secure-heap@81800000 { reg = <0x0 0x81800000 0x0 0x1e00000>; no-map; }; camera_mem: camera@84300000 { reg = <0x0 0x84300000 0x0 0x500000>; no-map; }; adsp_mem: adsp@86100000 { reg = <0x0 0x86100000 0x0 0x2800000>; no-map; }; cdsp_mem: cdsp@88900000 { reg = <0x0 0x88900000 0x0 0x1e00000>; no-map; }; mpss_mem: mpss@8b800000 { reg = <0x0 0x8b800000 0x0 0xf600000>; no-map; }; tz_stat_mem: tz-stat@c0000000 { reg = <0x0 0xc0000000 0x0 0x100000>; no-map; }; tags_mem: tags@c0100000 { reg = <0x0 0xc0100000 0x0 0x1200000>; no-map; }; Copy to clipboard You can adjust the reserved memory carveout regions based on your product requirements. This can involve removing a modem carveout region or reducing the size of TrustZone applications memory carveout regions. For example, the following code snippet shows how to disable the modem memory carveout for memory optimization: reserved-memory { mpss_mem: mpss@8b800000 { reg = <0x0 0x8b800000 0x0 0xf600000>; no-map; status = "disabled"; }; Copy to clipboard In this code: - 0x8b800000 is the base address of the modem region. - 0xf600000 is the size of the modem region, which is 246 MB. - Add `status= disabled` to make this region available to the Linux kernel. The following example snippets show how to reduce the TrustZone trusted applications memory carveout size from 28 MB (0x1c00000) to 20 MB (0x1400000): | Before:




reserved memory {
trusted_apps_mem: trusted_apps@c1800000 {
reg = <0x0 0xc1800000 0x0 0x1c00000>;
no-map;
};
Copy to clipboard | After:




reserved memory {
trusted_apps_mem: trusted_apps@c1800000 {
reg = <0x0 0xc1800000 0x0 0x1400000>;
no-map;
};
Copy to clipboard | | --- | --- | Last Published: Jul 12, 2024 [Previous Topic Configure](https://docs.qualcomm.com/bundle/publicresource/80-70014-10/topics/14-configure.md) [Next Topic Troubleshooting](https://docs.qualcomm.com/bundle/publicresource/80-70014-10/topics/24-debug.md)