Schedutil¶

Schedutil¶

频率/CPU 不变性¶

由于在 1GHz 下消耗 CPU 50% 与在 2GHz 下消耗 CPU 50% 不同,并且在 LITTLE CPU 上运行 50% 与在 big CPU 上运行 50% 不同,因此我们允许架构使用两个比率来缩放时间增量,一个动态电压和频率缩放 (DVFS) 比率和一个微架构比率。

对于简单的 DVFS 架构(软件完全控制),我们可以轻松地将比率计算为

f_cur

r_dvfs := -----

f_max

对于硬件控制 DVFS 的更动态的系统,我们使用硬件计数器(Intel APERF/MPERF、ARMv8.4-AMU)来提供该比率。 具体来说,对于 Intel,我们使用

APERF

f_cur := ----- * P0

MPERF

4C-turbo; if available and turbo enabled

f_max := { 1C-turbo; if turbo enabled

P0; otherwise

f_cur

r_dvfs := min( 1, ----- )

f_max

我们选择 4C turbo 而不是 1C turbo,以使其更可持续。

r_cpu 确定为当前 CPU 的最高性能级别与系统中任何其他 CPU 的最高性能级别的比率。

r_tot = r_dvfs * r_cpu

结果是上述 “running” 和 “runnable” 指标变为 DVFS 和 CPU 类型的不变量。 换句话说,我们可以在 CPU 之间传输和比较它们。

有关更多详细信息,请参见

kernel/sched/pelt.h:update_rq_clock_pelt()

arch/x86/kernel/smpboot.c:”APERF/MPERF frequency ratio computation.”

容量感知调度:”1. CPU 容量 + 2. 任务利用率”

相关文章

wps表格如何筛选符合要求的数据库

beat365手机版官方网站正规 11-03

上夜班的工作有哪些,夜班工作都有什么行业女性

365bet在线网址 06-30

2022-2023酷开电视推荐型号 酷开电视哪个系列好?

beat365手机版官方网站正规 07-07

爱国者和罗马仕的充电宝哪个好

beat365手机版官方网站正规 07-14