Fork me on GitHub

Android core control目录下的作用

在 Android 系统中,core control 的目录通常位于:

/sys/module/core_ctl/parameters/

该目录包含一系列文件,用于控制和调节 Android 的 core_ctl 模块的行为。core_ctl 是专门为多核处理器设计的一种动态核心管理机制,尤其在 big.LITTLE 架构下,用于平衡性能和功耗。

以下是该目录下常见文件及其作用的详细说明:


1. min_cpus

  • 作用:指定系统中始终保持在线(online)的最小 CPU 核心数。
  • 影响
    • 确保至少有指定数量的 CPU 核心始终在线,即使系统负载较低。
    • 增加此值会提高性能,但也会增加功耗。
  • 使用示例
    echo 4 > /sys/module/core_ctl/parameters/min_cpus
    

2. max_cpus

  • 作用:限制系统中允许在线的最大 CPU 核心数。
  • 影响
    • 即使负载较高,也不会超过此值上线更多核心。
    • 减小此值可能有助于节能,但可能影响高负载任务的性能。
  • 使用示例
    echo 8 > /sys/module/core_ctl/parameters/max_cpus
    

3. busy_up_thres

  • 作用:决定上线更多核心的负载阈值(以百分比表示)。当核心的平均负载高于此值时,core_ctl 会尝试上线更多核心。
  • 影响
    • 值越低,核心上线越敏感;值越高,系统会更倾向于保持核心离线状态。
  • 使用示例
    echo 70 > /sys/module/core_ctl/parameters/busy_up_thres
    

4. busy_down_thres

  • 作用:决定下线核心的负载阈值(以百分比表示)。当核心的平均负载低于此值时,core_ctl 会尝试下线多余核心。
  • 影响
    • 值越低,核心更容易被下线;值越高,核心倾向于保持在线。
  • 使用示例
    echo 30 > /sys/module/core_ctl/parameters/busy_down_thres
    

5. offline_delay_ms

  • 作用:设置核心在满足下线条件后延迟下线的时间(以毫秒为单位)。
  • 影响
    • 延迟值较大时,可以避免短时间内频繁上线/下线核心,减少核心切换带来的性能波动和功耗损耗。
  • 使用示例
    echo 1000 > /sys/module/core_ctl/parameters/offline_delay_ms
    

6. task_thres

  • 作用:设置触发核心上线所需的最低任务数阈值。当运行任务数超过此值时,core_ctl 会尝试上线更多核心。
  • 影响
    • 值较低时,core_ctl 会更快响应任务增加;值较高时,系统更保守地上线核心。
  • 使用示例
    echo 4 > /sys/module/core_ctl/parameters/task_thres
    

7. nr_running_avg

  • 作用:用于决定是否上线/下线核心的运行任务数平均值。此值由系统动态计算和更新,用户一般只用于查看状态。
  • 使用示例
    cat /sys/module/core_ctl/parameters/nr_running_avg
    

8. is_big_cluster

  • 作用:标记是否为 big.LITTLE 架构中的 big cluster。
  • 影响
    • 如果是 big cluster,core_ctl 会对其采用更激进的策略以提升性能。
  • 使用示例
    cat /sys/module/core_ctl/parameters/is_big_cluster
    

9. enable

  • 作用:启用或禁用 core_ctl 模块。
  • 影响
    • 如果设置为 0core_ctl 不再管理 CPU 核心的在线状态,核心行为完全由调度器决定。
  • 使用示例
    echo 1 > /sys/module/core_ctl/parameters/enable
    

10. cpu_up_ratecpu_down_rate

  • 作用
    • cpu_up_rate:指定核心上线的速度(每秒最大上线核心数)。
    • cpu_down_rate:指定核心下线的速度(每秒最大下线核心数)。
  • 使用示例
    echo 2 > /sys/module/core_ctl/parameters/cpu_up_rate
    echo 1 > /sys/module/core_ctl/parameters/cpu_down_rate
    

总结

/sys/module/core_ctl/parameters/ 目录下的各参数文件,主要是为了提供一个灵活的接口来调节核心的动态管理策略。通过合理配置,可以实现性能和功耗之间的平衡。

在实际使用中:

  1. 性能优先:适当增大 min_cpus 和降低 busy_up_thres
  2. 功耗优先:限制 max_cpus,提高 busy_up_thres,并增加 offline_delay_ms

根据具体场景调整这些参数,可以充分发挥硬件性能的潜力,同时优化用户体验。

posted @ 2024-11-20 22:02  yooooooo  阅读(1)  评论(0编辑  收藏  举报