先占个坑位。。。
uclamp共有3个维度: system维度:任何task的uclamp值,不管是uclamp_min还是uclamp_max,都不得大于system维度指定的uclamp值(实现参见uclamp_eff_get)。system维度的uclamp值可通过procfs中的节点设置 cgroup维度:任何task的uclamp值,不管是uclamp_min还是uclamp_max,都必须落在所属group指定的uclamp_min ~ uclamp_max之间(这个和system有差异,ta [……
预估负载util_est的提出基于下面两个背景: 由上一章我们对pelt的分析,知道pelt中负载{load|runnable|util}_avg更新的周期是1ms(严格的说是1024us),负载累加还是比较慢的 cpu调频(schedutil)依赖于cpu的util值,util值小,频率低,util值变化慢,调频慢 对task的迁核依赖于util值,如果util很小,则很难被迁移到大核上去 假如我们遇到这样的场景:一个重负载的线程,因为某种原因即将进入睡眠状态,这个重载线程在睡 [……
PELT,是per-entity load tracking的缩写,也就是以entity为单位进行负载跟踪,与之相对的是per-rq load tracking,即以rq为单位进行负载跟踪 注:本文分析基于Linux 5.10.61 一、前言 注:本章摘自蜗窝科技 1.1 为何要进行负载跟踪? 对于Linux内核而言,做一款好的进程调度器是一项非常具有挑战性的任务,主要原因是在进行CPU资源分配的时候必须满足如下的需求: 它必须是公平的 快速响应 系统的throughput( [……
一、基础概念 1.1 dmips是什么 mips(Million Instructions executed Per Second):表示每秒执行了多少百万条指令,用于衡量cpu的处理能力 dmips: D是Dhrystone的缩写,Dhrystone是一种整数运算测试程序,dmips表示cpu在运行这种测试程序时的mips,即dmips表示每秒执行多少百万条整数运算指令,Linux中用该值表示cpu的算力 dmips-mhz: 表示cpu在1MHz的频率下,每秒钟可以执行多少d [……