schedutil governor情景分析

作者:OPPO内核团队 发布于:2022-4-26 6:29 分类:进程管理

这是一篇分析schedutil governor(后文称之sugov)代码逻辑的文章。通过详细的代码级别的分析,希望能够帮助读者理解sugov的代码精妙之处。本文主要分四个章节:第一章简单重复了sugov相关的软件结构和基本算法,让读者对整个sugov在系统所处的位置和基本的逻辑控制有所了解。第二章对sugov使用的数据结构给出了详细的解释。第三章对sugov和cpufreq core的基本数据流和控制流进行分析。第四章描述了sugov本身的调频逻辑。

本文出现的内核代码来自Linux5.10.61,为了减少篇幅,我们会引用缩减版本的代码(仅包含主要逻辑),如果有兴趣,读者可以配合原始代码阅读本文。

阅读全文>>

标签: governor schedutil

评论(3) 浏览(10183)

linux cpufreq framework(4)_cpufreq governor

作者:wowo 发布于:2015-8-23 21:15 分类:电源管理子系统

由“linux cpufreq framework(3)_cpufreq core”的描述可知,cpufreq policy负责设定cpu调频的一个大致范围,而cpu的具体运行频率,则需要由相应的cufreq governor决定(可自行调节频率的CPU除外,后面会再详细介绍)。那到底什么是cpufreq governor?它的运行机制是什么?这就是本文要描述的内容。

阅读全文>>

标签: Linux governor cpufreq

评论(33) 浏览(20331)

Linux cpuidle framework(4)_menu governor

作者:wowo 发布于:2015-1-18 23:14 分类:电源管理子系统

本文以menu governor为例,进一步理解cpuidle framework中governor的概念,并学习governor的实现方法。

在当前的kernel中,有2个governor,分别为ladder和menu(蜗蜗试图理解和查找,为什么会叫这两个名字,暂时还没有答案)。ladder在periodic timer tick system中使用,menu在tickless system中使用。

现在主流的系统,出于电源管理的考量,大多都是tickless system。另外,menu governor会利用pm qos framework(蜗蜗会在后续的文章中分析),在选择策略中加入延迟容忍度(Latency tolerance)的考量。因此本文选取menu governor作为分析对象,至于ladder,就不再分析了。

注:有关periodic timer tick和tickless的知识,可参考本站时间子系统的系列文章。

阅读全文>>

标签: Linux cpuidle menu governor pm_qos

评论(21) 浏览(22718)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog