Linux调度器QoS框架的实现路线图:解决用户空间辅助调度的挑战

Linux Plumbers Conference

总结:

该视频讨论了Linux调度器在应对多样化工作负载(如服务器、Android和桌面系统)时面临的挑战,指出现有调度器偏向吞吐量,而交互性不足。为了解决这些问题,演讲者提出通过引入Sched QoS中间件库来实现一个更智能的统一调度器。主要关注以下六大问题:

  • 构建QoS管道框架,将高级应用需求抽象并映射到内核。
  • 优化多模式唤醒路径和负载均衡,使其能够考虑用户定义的QoS信息。
  • 通过零API采纳机制(如基于配置文件的提示)简化QoS的部署。
  • 调整调度器默认值,以更好地平衡吞吐量和交互性,满足不同系统和用户的期望。
  • 提供通用性能继承支持,解决优先级反转等问题,确保QoS的有效性。
  • 建立访问控制机制,管理管理员、应用程序和用户之间的QoS请求优先级,防止滥用。 该计划旨在为Linux调度器提供更灵活和可移植的QoS框架,以适应现代工作负载的需求。
    QoS类别及其内核实现映射
    QoS类别及其内核实现映射 [ 00:07:20 ]

引言与背景 [00:00:00]

Linux调度器面临的挑战 [00:00:40]

单一调度器应对多样化需求 [00:01:51]

QoS实现路线图 [00:02:40]

QoS管道与映射 [00:04:17]

QoS接口与应用描述 [00:04:22]

QoS类别及其内核实现映射 [00:05:50]

用户交互性与周期性需求 [00:11:00]

统一任务放置决策树 [00:20:01]

当前唤醒路径的局限性 [00:20:07]

改进方向 [00:22:21]

简易采纳与部署 [00:27:49]

API采纳的挑战 [00:28:00]

零API采纳机制:基于配置的提示 [00:28:33]

API仍可能需要,但应尽量避免 [00:30:59]

调度器默认值 [00:37:40]

历史包袱与吞吐量偏向 [00:37:49]

针对不同系统/期望的默认值调整 [00:38:00]

通用性能继承支持 [00:41:45]

代理执行 [00:42:56]

Qualcomm开源的用户资源管理器 (User Resource Manager) [00:41:45]

访问控制 [00:43:37]

管理员与应用/用户控制的优先机制 [00:43:39]

防止滥用 [00:44:00]