mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-08-21 06:24:16 +08:00
description/scheduler: IAS
This commit is contained in:
@@ -1626,18 +1626,13 @@ PREEMPT-RT PATCH 的核心思想是最小化内核中不可抢占部分的代码
|
||||
|
||||
如果内核在为进程选核的时候, 能够感知中断的影响, 将进程唤醒到中断负载很小的核上, 这样就不需要用户的参与, 调度器可以自己完成工作.
|
||||
|
||||
[IAS: Interrupt Aware Scheduler](https://lkml.org/lkml/2017/5/12/512) 就是一次很好的尝试,
|
||||
为 CFS 增加了中断感知的功能.
|
||||
[IAS: Interrupt Aware Scheduler](https://lkml.org/lkml/2017/5/12/512) 就是一次很好的尝试, 为 CFS 增加了中断感知的功能.
|
||||
|
||||
1. 当中断处理, 开始和结束时间指出每个中断情况.
|
||||
1. 在中断处理的开始和结束记录每个中断情况. 每个周期, 统计每个 CPU 上的中断百分比. 给定 CPU 的中断负载也会随着时间的推移而衰减, 因此最近的中断负载在中断负载计算中具有最大的贡献, 借鉴了 PELT 的思想. 这意味着调度器在调度最近忙于处理硬件中断的线程时, 将尽量避免使用最近中断负载高的 CPU.
|
||||
|
||||
2. 在一个周期性的基础上, 中断负载被处理为每个运行队列, 这是按照百分比映射在一个全局数组. 给定 CPU 的中断负载也会随着时间的推移而衰减, 因此最近的中断负载在中断负载计算中具有最大的贡献. 这意味着调度器在调度最近忙于处理硬件中断的线程时, 将尽量避免使用 cpu (如果可能的话).
|
||||
2. 当 CPU 上中断负载超过 80% 就会被认为是中断负载比较重的. 从调度器的角度来看, 在空闲 CPU 搜索期间, 如果有更好的 CPU 可用, 应该跳过中断负载重的 CPU.
|
||||
|
||||
3. 当 CPU 上中断负载超过 80%U 被认为是中断重的. 从调度器的角度来看, 在空闲 CPU 搜索期间, 如果有更好的 CPU 可用, 应该跳过中断负载重的 CPU.
|
||||
|
||||
|
||||
|
||||
5) 如果没有一个 CPU 在空闲和中断负载方面更好, 那么中断重的 CPU 被认为是最好的可用 CPU.
|
||||
3. 如果所有核都很繁忙或者中断都很重, 才会去选择一个中断比较重的 CPU.
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
|
||||
Reference in New Issue
Block a user