开始 sched-ext 开发

主要观点:本文旨在支持对使用 sched-ext 进行调度开发感兴趣的人,介绍了在不安装自定义内核的情况下用 sched-ext 进行实验的个人工作流程,包括安装 virtme-ng 及其依赖、准备 sched-ext 内核、构建用户空间 scx 工具和调度器、在 virtme-ng 中测试调度器、修改调度器(如 scx_rustland)及测试结果等。
关键信息:

  • virtme-ng 可通过包管理器或 pip 安装,需安装多种依赖。
  • 准备 sched-ext 内核基于 bpf-next 分支,通过特定命令克隆和编译。
  • 构建 scx 工具和调度器可通过命令行操作。
  • 在 virtme-ng 中可使用 helper 快速运行 sched-ext 调度器及 shell 会话,可修改 scx_rustland 调度器代码。
  • 测试结果显示修改后的 scx_rustland 调度器能使其他 CPU 进入低功耗状态,降低功耗。
    重要细节:
  • 不同 Linux 发行版安装 virtme-ng 及依赖的方式可能不同。
  • 准备 sched-ext 内核时的具体命令及操作步骤。
  • 构建 scx 工具和调度器时的命令及不同调度器的编译方式。
  • 在 virtme-ng 中测试调度器的具体命令及操作。
  • 修改 scx_rustland 调度器的代码示例及修改原因。
  • 测试不同调度器功耗的具体命令及结果对比。
阅读 18
0 条评论