摘要:
在进程调度中使用到了一些比较关键的参数,用来作为调度、cpu调频、EAS等关键功能的前提。 并且在相关模块中经常交替出现,比较容易混淆,这里单独将这些参数拎出来,做个记录。 cpu_capacity cpu_capacity是作为cpu算力的量化体现,代表着cpu性能的大小。数字越大,性能越高。 c 阅读全文
摘要:
Energy Awareness Scheduler是由ARM和Linaro开发的新的linux kernel调度器。 原先CFS调度器是基于policy进行调度,并有不同的吞吐量。例如,有一个新的task创建,同时也有一个idle cpu时,CFS始终会把新的task放到这个idle cpu上运行 阅读全文
摘要:
一、概述 决定何时、如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy)。 Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运行,因为CPU的时间呗分成“片”(slice),给每个可运行进程分配一片。如果当前运行进程的时间片或 阅读全文
摘要:
ondemand 简述: 1、采样时间:sampling_rate,单位us 2、cpu usage是仅统计最新1us的一个smaple周期,以%体现cpu busy程度。 3、一般情况下,next频率f = fmin + busy% * (fmax-fmin);如果busy% > up_thres 阅读全文
摘要:
native层利用底层节点变化,再针对变化进行相应的函数调用,实现某些功能。 架构如下: 底层提供节点更新,以及healthd读取节点的实现,都比较简单。而其余部分比较关键。 特别注意init监控prop,并触发接口,调用具体函数的这个路径。 具体关键实现点如下: Running Service:修 阅读全文
摘要:
之前遇到一个耗电问题,最后发现是/proc/sys/kernel/sched_boost节点设置异常,一直处于boost状态。导致所有场景功耗上升。 现在总结一下sched_boost的相关知识。 Sched_Boost sched_boost主要是通过影响Task placement的方式,来进行 阅读全文
摘要:
本文仅是对kernel中的document进行翻译,便于理解。后续再添加代码分析。 1. 为何引入schedtune? schedutil是一个基于利用率驱动的cpu频率governor。它允许调度器为了cpu上运行的task选出最优的工作频率点(DVFS operating point: OPP) 阅读全文
摘要:
1. cpusets 1.1 什么是cpusets cpusets基本功能是限制某一组进程只运行在某些cpu和内存节点上,举个简单例子:系统中有4个进程,4个内存节点,4个cpu.利用cpuset可以让第1,2个进程只运行在第1,2颗cpu上并且只在第1,2个内存节点上分配内存。cpuset是基于c 阅读全文
摘要:
修改路径:C:\ProgramData\Source Insight\4.0\si4.lic 字段: Date="2020-01-20" Expiration="2020-02-19" 修改到包含当天时间区间: 比如:今天2020/3/13,那么改为: Date="2020-02-20" Expir 阅读全文
摘要:
QCOM平台使用WALT(Window Assisted Load Tracking)作为CPU load tracking的方法;相对地,ARM使用的是PELT(Per-Entity Load Tracking)。 WALT的核心算法思想是:将一小段时间内的CPU loading情况计算出对应的结 阅读全文