2021.11.15

Intro

设计了2个工具

  1. sanity checker: periodically check
  2. visualize traces of scheduling
2021.11.16

Sched

Single core

$$ vruntime=\frac{runtime}{weight} $$

Multicore

load balance is challenging

cpu交互太多效率低,交互太少空转。

读到这里:我的想法,空转就去问其他cpu,其他时候进可能不主动交互。

load balance algo

文章考虑到了我的想法:空转就去问其他cpu被称作“steal”。 steal发生频繁并不是好事情。 文章想解决数量优先级:19,9*1,9级常睡觉的现象。

提出load的感念,和weight正相关,和cpu利用率负相关,和线程数负相关。

平衡算法还要考虑cache局部性和numa。

bugs

group imbalance bug

hiearchical design导致各组分布不均。

看是否调度行为是否符合预期,就拿CFS做对比。

将比较组的平均负载,改为了最小负载。这样会出现新的问题吗?只是实验结果说没有。

Sched Group Construction bug

Overload-on-Wakeup

Tools

Online Sanity Checker