# 为性能调优而自定义

自定义是一个包括对系统各个方面进行微调的过程，这可以显着影响系统的整体性能和功能。

可对 CPU 调度器、CPU 频率调节器、动态电压和频率调节 (DVFS) 调节器、perflock 和内存进行微调。建议在通过全面分析性能和功耗而对各个方面彻底了解后，再进行调节。

Caution

任何自定义均会影响设备的功率和性能。因此，在执行任何自定义之前，都务必要验证对所有相关用例的影响。

## 自定义 CPU 调度器

您可以自定义 CPU 调度器的功能，例如利用率钳位（UCLAMP 或 util clamp）调度器。

关于更多信息，请参阅 [CPU scheduler](https://docs.qualcomm.com/doc/80-70020-10SC/topic/2-performance-features.html#cpu-scheduler)。

### UCLAMP

UCLAMP 是一种调度器功能，允许用户空间来管理任务性能要求。

它是一种提示机制，可以帮助调度程序了解任务的性能需求和限制，从而帮助调度程序做出明智的决策。

当使用 `schedutil` CPU 频率调节器时，UCLAMP 还会决定 CPU 频率选择。UCLAMP 值范围为 0 至 1024。

可以为 UCLAMP 自定义以下参数：

- `sched_util_clamp_min`：该参数设置单个任务和任务组可接受的最低性能级别，确保任务获得足够的资源以有效运行，即使在需求低时也是如此。

    任何任务请求的 `uclamp.min` 值都不能超过 `sched_util_clamp_min`。

    - 对调度器而言，它相当于每实体负载跟踪 (PELT) 信号的下限，该信号用于跟踪任务利用率。
    - 对于 CPU 频率，它指示调节器选择一个能够满足任务性能要求的频率，从而确保响应度和效率。Qualcomm 调整值为 1024。要设置该参数，请在设备上运行以下命令：

echo 1024 > /proc/sys/kernel/sched_util_clamp_min
        Copy to clipboard
- `sched_util_clamp_max`：该参数设置单个任务和任务组可接受的最高性能级别。它确保任务不会消耗过多资源，防止出现资源争用和系统不稳定的情况。

    任何任务请求的 `uclamp.max` 值都不能超过 `sched_util_clamp_max`。

    - 对调度器而言，它相当于 PELT 信号的上限，用于跟踪任务利用率。
    - 对于 CPU 频率，如果任务需求超过可用频率，则调节器可调整频率以防止功耗过度。Qualcomm 调整值为 1024。要设置该参数，请在设备上运行以下命令：

echo 1024 > /proc/sys/kernel/sched_util_clamp_max
        Copy to clipboard
- `sched_util_clamp_min_rt_default`：默认情况下，实时 (RT) 任务始终以最高频率和最高 CPU 容量运行。使用该参数可以更改使用 UCLAMP 时 RT 任务的默认行为。

    它可以调优 RT 任务的最佳值，无需将其推至最大性能点即可提供良好的性能。该行为满足了系统要求，不需要消耗功耗，也不需要始终以最大性能点运行。Qualcomm 调整值为 128。

    要设置该参数，请在设备上运行以下命令：

echo 128 > /proc/sys/kernel/sched_util_clamp_min_rt_default
        Copy to clipboard

有关更多信息，请参阅 [Utilization Clamping](https://docs.kernel.org/scheduler/sched-util-clamp.html)。

## 自定义 CPU 频率调节器

可以使用 `scaling_governor` 节点配置 CPU 频率调节器来增强 CPU 性能。

Note

QCS5430 FP1 不支持包含 `policy7` 的命令。

要为 Qualcomm Dragonwing^™^ IQ-9075、Qualcomm Dragonwing^™^ IQ-8275 和 Qualcomm Dragonwing^™^ IQ-615 自定义频率调节器，请参阅相应的附录。以下指南可供具有授权访问权限的许可用户使用：

- [Qualcomm Linux Performance Guide - Addendum for Qualcomm Dragonwing IQ-9075](https://docs.qualcomm.com/bundle/resource/topics/80-70020-10A/overview.html)
- [Qualcomm Linux Performance Guide - Addendum for Qualcomm Dragonwing IQ-8275](https://docs.qualcomm.com/bundle/resource/topics/80-70020-10B/overview.html)
- [Qualcomm Linux Performance Guide - Addendum for Qualcomm Dragonwing IQ-615](https://docs.qualcomm.com/bundle/resource/topics/80-70020-10C/overview.html)

Note

应在设备上运行下表中指定的命令。

表：自定义 CPU 频率调节器的命令

| 命令 | 目的 |
| --- | --- |
| echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor<br>    Copy to clipboard<br><br><br>echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor<br>    Copy to clipboard<br><br><br>echo performance > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor<br>    Copy to clipboard | 设置 CPU 调节器以增强系统性能。 |
| cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor<br>    Copy to clipboard<br><br><br>cat /sys/devices/system/cpu/cpufreq/policy4/scaling_governor<br>    Copy to clipboard<br><br><br>cat /sys/devices/system/cpu/cpufreq/policy7/scaling_governor<br>    Copy to clipboard | 验证 CPU 频率调节器。 |
| echo schedutil > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor<br>    Copy to clipboard<br><br><br>echo schedutil > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor<br>    Copy to clipboard<br><br><br>echo schedutil > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor<br>    Copy to clipboard | 将 CPU 频率调节器设置为 `schedutil`。 |
| echo 1000 > /sys/devices/system/cpu/cpufreq/policyX/schedutil/rate_limit_us<br>    Copy to clipboard | 自定义 `rate_limit_us`。<br><br><br>`policyX` 中的 `X` 值对应于 0、4 和 7 组。<br><br><br>这是一个 `schedutil` 调节器参数。它包含以微秒为单位的值。调节器需要等待 `rate_limit_us` 一段时间以重新评估负载。Qualcomm 调整值为 1000。 |

## 自定义 DVFS 调节器

您可以根据设备的功耗和性能要求，使用 DTSI 文件自定义静态映射 DVFS 调节器和带宽监测 (BWMON) 调节器。

### 自定义静态映射 DVFS 调节器

您可以根据源代码中的 `arch/arm64/boot/dts/qcom/<target>.dtsi` 文件中的功耗和性能要求自定义CPU 频率和 L3/DDR 频率之间的映射。

在该 DTSI 文件中，每个 CPU 节点都有一个带有 `operating-points-v2 = <&cpux_opp_table>` 的条目，其中 `cpux_opp_table` 保存 CPU 频率与 L3 和 DDR 频率之间的静态映射。

例如，以下条目指示 CPU 0 在 300 MHz 频率下运行：

cpu0_opp_300mhz: opp-300000000 {
                    opp-hz = /bits/ 64 <300000000>;
                    pp-peak-kBps = <800000 9600000>;
                    };
    Copy to clipboard

当 CPU 0 以 300 MHz 运行时，会执行以下操作：

- 将 L3 表决为 9600000，即 9600000/w（其中 w = 32）= 300,000，对应于 300 MHz
- 将 DDR 表决为 800000，即 800000/w（其中 w = 4）= 200,00，对应于 200 MHz

在本例中，'w' 表示可以在一个周期内写入的字节数。

- 对于 L3，该值为 32，表示每周期一个事务，每事务 32 字节。
- 对于双通道 DDR，该值为 4。每个通道每周期可执行两个事务（因为是 DDR 内存），每个事务 2 字节。

关于更多信息，请参阅 [Generic OPP (Operating Performance Points) Bindings](https://www.kernel.org/doc/Documentation/devicetree/bindings/opp/opp.txt)。

这些表中指定了每个通道的 DDR 值。这意味着 CPU 频率与每个内存控制器通道的带宽之间存在对应关系。

Caution

如果更改 DTSI 文件，则会影响设备的功耗和性能。在更改任何节点前，确保对所有相关用例的影响进行了验证。

### 自定义 BWMON 调节器

您可以根据源代码中的 `arch/arm64/boot/dts/qcom/<target>.dtsi` 文件中的功耗和性能要求，针对最后一级缓存控制器 (LLCC) 和 DDR 投票自定义 `bwmon_opp_table`。

以下代码示例包含 DDR 频率级别和 LLCC 频率级别，每个级别都会根据流量转换为 LLCC 和 DDR 投票。

以下 DTSI 条目根据 LLCC 到 DDR 之间的 CPU 流量（对应于 200 MHz）对 DDR 进行投票。在此示例中，800000/w（其中 w = 4）等于 200000：

llcc_bwmon_opp_table: opp-table {
            compatible = "operating-points-v2";
            opp-0 {
                     opp-peak-kBps = <800000>;
             };
    Copy to clipboard

以下 DTSI 条目根据 CPU 和 LLCC 之间的 CPU 流量（对应于 150 MHz）对 LLCC 进行投票。在此示例中，2400000/w（其中 w = 16）等于 150000：

cpu_bwmon_opp_table: opp-table {
           compatible = "operating-points-v2";
           opp-0 {
                    opp-peak-kBps = <2400000>;
             };
    Copy to clipboard

在这些示例中，'w' 表示单个周期中可以写入的字节数。

- 对于 DDR，该值为 4。每个通道每周期可执行两个事务（DDR 内存），每个事务 2 个字节。
- 关于 LLCC，该值为 16。

## 自定义 perflock

可以使用 perflock API，使用不同的调优参数运行用例，并调试 perflock 问题。

### Perflock API

要使用用户空间源代码中的 perflock API，请执行以下操作：

1. 在源文件中加入动态链接头：`#include <dlfcn.h>`。
2. 使用 `dlopen` 加载 `library(libqti-perfd-client.so)`。
3. 使用 `dlsym` 加载 `perf_lock_acq()` 和 `perf_lock_rel()` 符号。
4. 声明一个整型变量来存储 `perf_lock_acq()` 的返回值。
5. 使用所需的资源操作码和值对定义 `perf_lock_opts`。
6. 使用 `perf_lock_acq()` 获取具有指定优化的锁。
7. 使用 `perf_lock_rel()` 释放锁。
8. 清理时使用 `dlclose` 卸载库。

以下示例代码展示了 perflock API 的用法，并说明了如何将小核的最低频率设置为 1.9 GHz：

#include <stdlib.h>
    #include <stdio.h>
    #include <dlfcn.h>
    #include <error.h>
    #include <unistd.h>
    
    #define PATH_MAX 92
    
    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] = "/usr/lib/libqti-perfd-client.so";
    
    int main()
    {
    
        if ((qcopt_handle = dlopen(opt_lib_path, RTLD_NOW)) == NULL)
        {
            printf("dlopen failed with error: NULL\n");
        } else {
            printf("call perflock \n");
            perf_lock_acq = (int (*)(int, int, int *, int))dlsym(qcopt_handle, "perf_lock_acq");
            if(!perf_lock_acq)
                printf("Unable to get perf_lock_rel function handle.\n");
            perf_lock_rel = (int (*)(int))dlsym(qcopt_handle, "perf_lock_rel");
        }
        int perf_lock_opts[2] = {0x44008100,1958400};
        perf_lock_handle = perf_lock_acq(perf_lock_handle, 0, perf_lock_opts, 2);
        printf("perflock acquired %d\n", perf_lock_handle);
    
       //Code section requiring perflock
    
       perf_lock_rel(perf_lock_handle);
       printf("releasing perflock\n");
       dlclose(qcopt_handle);
       return 0;
    }
    Copy to clipboard

### perflock 原生测试

perflock 原生测试是专为评估特定 perflock 操作码组合的有效性而设计的工具。

该工具位于设备上的 `/usr/bin/` 处。

可以将此工具作为试验不同 `<resource, opcode>` 调节参数的用例来运行。当所需的性能改进得到确认后，即可将 perflock 代码集成到 Qualcomm^®^ Linux^®^ 中。

以下代码说明了语法：

perflock_native_test --acq <handle> <duration> <resource opcode, value, resource opcode, value,...>
    Copy to clipboard

以下是如何使用该工具的示例。在设备上运行这些命令：

- 要获取小核群集的 perflock，且最低频率设置为 1958400 KHz，持续 30 秒，可运行以下命令：

perflock_native_test --acq 0 30000 0x44008100,1958400
        Copy to clipboard
- 要验证小核群集的最低频率，可运行以下命令：

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
        Copy to clipboard
- 请运行以下命令，以便验证来自 `syslog` 的 perflock 日志：

cat /var/log/syslog
        Copy to clipboard

    以下是日志 ：

perflock\_native\_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: initialize() 60: NRP: lib name libqti-perfd-client.so

perflock\_native\_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: main() 502: NRP: resource\_list[0] = 44008100 //silver core min frequency opcode

perflock\_native\_test: ANDR-PERFLOCK-TESTERANDR-PERFLOCK-TESTER: main() 502: NRP: resource\_list[1] = 7a6 // silver core min freq in hex

### 调试 perflock

以下是调试 perflock 问题的日志机制的一些示例：

Note

应在设备上运行以下示例命令。

- 要验证 PerfHAL 服务是否可用，可运行以下命令：

ls /usr/bin | grep perf
        Copy to clipboard
- 要验证 PerfHAL 服务的运行状态，可运行以下命令：

systemctl status perf-hal
        Copy to clipboard
- 请运行以下命令，以便启用 `/var/log/syslog` 中的 perflock 日志和跟踪：

echo debug.trace.perf=1 >> /etc/build.prop
        Copy to clipboard

echo vendor.debug.trace.perf=1 >> /etc/build.prop
        Copy to clipboard

reboot
        Copy to clipboard

## 自定义内存

可以使用 kswapd 管理虚拟内存，使用 watermark 调节系统内存，以及通过内存 carveout 为特定子系统定义内存区域。

### Kswapd

Kswapd 是管理虚拟内存的内核线程。当系统空闲内存不足时，Kswapd 会被激活以回收内存，方法是从文件缓存中找出不常用的页面，并将其移至交换空间 (ZRAM)。

Kswapd 执行以下操作：

- 监测系统的内存使用情况。
- 在后台执行交换活动，以使可用内存保持在最佳水平。

![../../_images/cpu_usage_performance_using_kswapd.png](data:image/png;base64,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)

**图：使用 Kswapd 的 CPU 使用率与性能**

### watermark

watermark 是针对内存参数设置的一个阈值或限值，可帮助调节系统内存的分配和利用率。

表： watermark 参数

| 参数 | 说明 |
| --- | --- |
| `/proc/sys/vm/min_free_kbytes` | <ul class="simple"><br><li><p>该参数决定系统在所有区域必须保留的最小空闲内存量。</p></li><br><li><p>它可确保对无法等待内存回收的关键操作（例如处理原子级分配）仍有一定的内存储备。</p></li><br><li><p>每个区域中预留的空闲页面的数量与其大小成正比。</p></li><br></ul> |
| `/proc/sys/vm/watermark_scale_factor` | <ul class="simple"><br><li><p>该系数控制 Kswapd 的优先程度。</p></li><br><li><p>它定义 Kswapd 被唤醒前，系统剩余的内存量，以及 Kswapd 需要在空闲内存量达到多少时进入休眠状态。</p></li><br><li><p>单位为万分之一。</p></li><br><li><p>默认值 10 表示 watermark 之间的间隔为节点或系统中可用内存的 0.1%；最大值 1000，或内存的 10%。</p></li><br></ul> |
| `/proc/sys/vm/watermark_boost_factor` | <ul class="simple"><br><li><p>该系数用于优化内存碎片，方法是为内存管理区域临时提供一个高 watermark 值，以使 Kswapd 能回收更多的内存。</p></li><br><li><p>单位为万分之一。</p></li><br><li><p>默认值 15000 表示在遇到因碎片导致页块混合的情况下，最多回收高watermark 的 150%。</p></li><br><li><p>回收级别由最近发生的碎片事件数量所决定。如果 boost 系数为 0，则禁用该功能。</p></li><br></ul> |

有关更多信息，请参阅 [Documentation for /proc/sys/vm/](https://www.kernel.org/doc/Documentation/admin-guide/sysctl/vm.rst)。

### 内存 carveout

内存 carveout 是指内核无法寻址的特定内存区域，称为无映射区域。Modem、摄像头、aDSP、cDSP 和 Qualcomm^®^ Trusted Execution Environment (TEE)/TrustZone (TZ) 等特定子系统专门使用这些区域，因此 Linux 内核无法访问这些区域。

这些 carveout 区域在 `arch/arm64/boot/dts/qcom/<target>.dtsi` 的源代码中定义。

它们属于 `reserved-memory` 节点并可以进行配置。

以下代码显示了 cDSP、摄像头、Modem 和 QTEE/TrustZone (TZ) 子系统的无映射区域：

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

可以根据产品要求调整预留的内存 carveout 区域。此调整可包括删除 Modem carveout 区域或减小 QTEE/TrustZone (TZ) 应用程序内存 carveout 区域的大小。

例如，以下代码片段说明如何禁用 Modem 内存 carveout 以进行内存优化：

reserved-memory {
            mpss_mem: mpss@8b800000 {
                reg = <0x0 0x8b800000 0x0 0xf600000>;
                no-map;
                        status = "disabled";
            };
    Copy to clipboard

在此代码中：

- `0x8b800000` 是 Modem 区域的基址。
- `0xf600000` 是 Modem 区域的大小，为 246 MB。
- 添加 `status = disabled` 以使该区域可供 Linux 内核使用。

以下示例片段展示了如何将 QTEE/TrustZone(TZ) 应用程序的内存 carveout 大小从 28 MB (`0x1c00000`) 减少到 20 MB (`0x1400000`)：

| - 之前：<br>    - reserved memory {<br>                     trusted_apps_mem: trusted_apps@c1800000 {<br>                     reg = <0x0 0xc1800000 0x0 0x1c00000>;<br>                     no-map;<br>       };<br>    Copy to clipboard | - 之后：<br>    - reserved memory {<br>                  trusted_apps_mem: trusted_apps@c1800000 {<br>                  reg = <0x0 0xc1800000 0x0 0x1400000>;<br>                  no-map;<br>    };<br>    Copy to clipboard |
| --- | --- |

## 后续步骤

- [排查性能问题](https://docs.qualcomm.com/doc/80-70020-10SC/topic/24-debug.html#debug)

Last Published: Jul 23, 2025

[Previous Topic
配置 CPU、GPU 和内存](https://docs.qualcomm.com/bundle/publicresource/80-70020-10SC/topics/14-configure.md) [Next Topic
排查性能问题](https://docs.qualcomm.com/bundle/publicresource/80-70020-10SC/topics/24-debug.md)