Sign in
Sign up
Explore
Enterprise
Education
Search
Help
Terms of use
About Us
Explore
Enterprise
Education
Gitee Premium
Gitee AI
AI teammates
Sign in
Sign up
Fetch the repository succeeded.
description of repo status
Open Source
>
Other
>
Operation System
&&
Watch
Unwatch
Watching
Releases Only
Ignoring
456
Star
1.7K
Fork
1.9K
GVP
openEuler
/
kernel
Closed
Code
Issues
1271
Pull Requests
980
Wiki
Insights
Pipelines
Service
Quality Analysis
Jenkins for Gitee
Tencent CloudBase
Tencent Cloud Serverless
悬镜安全
Aliyun SAE
Codeblitz
SBOM
DevLens
Don’t show this again
Update failed. Please try again later!
Remove this flag
Content Risk Flag
This task is identified by
as the content contains sensitive information such as code security bugs, privacy leaks, etc., so it is only accessible to contributors of this repository.
【openEuler-26.09】回合主线6.12的sched_ext特性
Done
#ID7HLY
内核需求
cheliequan
Opened this issue
2025-11-19 19:36
<!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--> <!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--> 【特性描述】从使用者视角简要说明特性的功能(尽量使用正向表达方式) BPF调度扩展提供一个支持eBPF程序修改调度策略的调度类。BPF调度扩展的目标是改善调度器的负载均衡能力、增强并行性、以及减少上下文切换的开销,从而提升多核环境下的系统性能。BPF调度扩展实现三个核心目的: 1.让开发者更易于实验和探索新的调度策略,免去编译完整内核镜像的成本。 2.通用调度策略难以满足的特殊应用场景,通过该机制可以实现深度定制化。 3.快速的终端调度器部署。 【特性收益】简要说明该特性解决的问题,或带来的收益。(可选) 调度器是操作系统中负责决定哪些进程或线程运行的核心组件。在多核系统中,传统的调度器可能在负载较高时出现性能瓶颈。通用的调度奇经过内核中的调度器从 CFS 演进到了 EEVDF,能够提升某些场景下延迟敏感调度任务,但这些内核调度器的目的是为了保障大多数工作负载(例如数据库、游戏、微服务)和大多数硬件平台(例如 x86、ARM、NUMA、非 NUMA、CCX 等)上通用并工作良好,不能实现特定场景的调度定制化。因为传统的调度器在某些工作负载和硬件组合中表现良好,而在其他工作负载和硬件组合中表现出不符合预期的退化并不罕见。为了避免这种性能回归错误,实现一套可以可以灵活定制的调度策略成了迫切的需求。 此外,采用针对特定工作负载/硬件组合的自定义调度器比使用通用调度器更有利。然而,实现和维护自定义调度器非常痛苦。这不仅是因为替换或自定义内核调度器具有挑战性,还因为自定义调度策略不太可能被上游接受,因此自定义调度器在长期内会带来沉重的维护负担。BPF扩展调度是为了解决上述问题而提出的。它允许用户使用 BPF 编写自定义调度策略,而无需修改内核代码。你不需要为维护内核外的自定义调度器而苦恼。BPF调度扩展的目标是改善调度器的负载均衡能力、增强并行性、以及减少上下文切换的开销,从而提升多核环境下的系统性能。 【适用场景】简单该特性预期的使用场景。(可选) BPF调度扩展可以用于针对定制需求开发新的调度类,提高特定应用的性能。例如: 1、在游戏和 VR 场景中,有周期性的帧渲染任务需要在帧周期内完成,调度器可以实现类似虚拟截止期的机制,根据任务的重要性(如对帧率的影响)调整其调度顺序; 2、在对于高性能计算(HPC)和吞吐优先的负载场景中,自定义调度器能够最大化 CPU 利用率和缓存局部性,提高整体吞吐量。 3、在云计算与容器/虚拟化调度场景中,sched_ext 提供了优化虚拟机和容器调度的新手段。云环境下常有多租户(容器或VM)共享CPU的情况,自定义调度器可以感知租户级别的调度需求。 【交付个人/团队】请明确交付责任人,如果有团队支撑,请一并填写团队信息。(可选)
<!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--> <!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--> 【特性描述】从使用者视角简要说明特性的功能(尽量使用正向表达方式) BPF调度扩展提供一个支持eBPF程序修改调度策略的调度类。BPF调度扩展的目标是改善调度器的负载均衡能力、增强并行性、以及减少上下文切换的开销,从而提升多核环境下的系统性能。BPF调度扩展实现三个核心目的: 1.让开发者更易于实验和探索新的调度策略,免去编译完整内核镜像的成本。 2.通用调度策略难以满足的特殊应用场景,通过该机制可以实现深度定制化。 3.快速的终端调度器部署。 【特性收益】简要说明该特性解决的问题,或带来的收益。(可选) 调度器是操作系统中负责决定哪些进程或线程运行的核心组件。在多核系统中,传统的调度器可能在负载较高时出现性能瓶颈。通用的调度奇经过内核中的调度器从 CFS 演进到了 EEVDF,能够提升某些场景下延迟敏感调度任务,但这些内核调度器的目的是为了保障大多数工作负载(例如数据库、游戏、微服务)和大多数硬件平台(例如 x86、ARM、NUMA、非 NUMA、CCX 等)上通用并工作良好,不能实现特定场景的调度定制化。因为传统的调度器在某些工作负载和硬件组合中表现良好,而在其他工作负载和硬件组合中表现出不符合预期的退化并不罕见。为了避免这种性能回归错误,实现一套可以可以灵活定制的调度策略成了迫切的需求。 此外,采用针对特定工作负载/硬件组合的自定义调度器比使用通用调度器更有利。然而,实现和维护自定义调度器非常痛苦。这不仅是因为替换或自定义内核调度器具有挑战性,还因为自定义调度策略不太可能被上游接受,因此自定义调度器在长期内会带来沉重的维护负担。BPF扩展调度是为了解决上述问题而提出的。它允许用户使用 BPF 编写自定义调度策略,而无需修改内核代码。你不需要为维护内核外的自定义调度器而苦恼。BPF调度扩展的目标是改善调度器的负载均衡能力、增强并行性、以及减少上下文切换的开销,从而提升多核环境下的系统性能。 【适用场景】简单该特性预期的使用场景。(可选) BPF调度扩展可以用于针对定制需求开发新的调度类,提高特定应用的性能。例如: 1、在游戏和 VR 场景中,有周期性的帧渲染任务需要在帧周期内完成,调度器可以实现类似虚拟截止期的机制,根据任务的重要性(如对帧率的影响)调整其调度顺序; 2、在对于高性能计算(HPC)和吞吐优先的负载场景中,自定义调度器能够最大化 CPU 利用率和缓存局部性,提高整体吞吐量。 3、在云计算与容器/虚拟化调度场景中,sched_ext 提供了优化虚拟机和容器调度的新手段。云环境下常有多租户(容器或VM)共享CPU的情况,自定义调度器可以感知租户级别的调度需求。 【交付个人/团队】请明确交付责任人,如果有团队支撑,请一并填写团队信息。(可选)
Comments (
1
)
Sign in
to comment
Status
Done
新建
已接纳
In Development
拟拒绝
Canceled
Declined
Done
Assignees
Not set
Labels
sig/Kernel
Not set
Projects
Unprojected
Unprojected
Pull Requests
None yet
None yet
Successfully merging a pull request will close this issue.
Branches
No related branch
Branches (
-
)
Tags (
-
)
Planed to start   -   Planed to end
-
Top level
Not Top
Top Level: High
Top Level: Medium
Top Level: Low
Priority
Not specified
Serious
Main
Secondary
Unimportant
Duration
(hours)
参与者(2)
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel
Going to Help Center
Search
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
Repository Report
Back to the top
Login prompt
This operation requires login to the code cloud account. Please log in before operating.
Go to login
No account. Register