mirror of
https://github.com/gatieme/LDD-LinuxDeviceDrivers.git
synced 2026-10-02 02:24:08 +08:00
docs: update AI study notes and kernel descriptions
This commit is contained in:
+15
-6
@@ -58,13 +58,13 @@ blogexcerpt: 虚拟化 & KVM 子系统
|
||||
华擎的 AI QuickSet WSL 旨在通过 WSL 下的自动 ROCm 设置以及安装/配置流行的 AI 软件包以在 WSL+ROCm 下加速执行, 从而轻松"在 Windows 上运行 Linux AI 应用程序". 参见 [phoronix, 2025/09/15, ASRock AI Quickset WSL Aims To Make It Easier Running ROCm + AI Linux Apps On Windows](https://www.phoronix.com/news/ASRock-AI-QuickSet-WSL)
|
||||
|
||||
|
||||
[知乎--机器之心--跟不上、读不完?上万篇顶会论文,这个工具一键分析](https://zhuanlan.zhihu.com/p/1968619277394346770)
|
||||
[知乎--机器之心--跟不上、读不完?上万篇顶会论文, 这个工具一键分析](https://zhuanlan.zhihu.com/p/1968619277394346770)
|
||||
|
||||
## 1.1 AI4OS
|
||||
-------
|
||||
|
||||
|
||||
[Learning-directed operating system (LDOS)](https://ldos.utexas.edu) 是德克萨斯大学奥斯汀分校的一个研究项目, 专注于开发基于机器学习的下一代作系统, 以提高效率和性能. 该项目旨在通过将机器学习驱动的方法集成到核心系统组件中, 通过"从头开始的范式"彻底改变作系统设计. 这包括优化资源分配、调度和拥塞控制机制,以动态适应不同的工作负载.
|
||||
[Learning-directed operating system (LDOS)](https://ldos.utexas.edu) 是德克萨斯大学奥斯汀分校的一个研究项目, 专注于开发基于机器学习的下一代作系统, 以提高效率和性能. 该项目旨在通过将机器学习驱动的方法集成到核心系统组件中, 通过"从头开始的范式"彻底改变作系统设计. 这包括优化资源分配、调度和拥塞控制机制, 以动态适应不同的工作负载.
|
||||
2025 年, LDOS 团队发表了两篇论文: "Canopy: Property-Driven Learning for Congestion Control" 探索了使用机器学习根据网络属性动态调整拥塞控制策略, "Large Language Models as Realistic Microservice Trace Generators" 应用 LLM 生成用于测试微服务的真实流量跟踪, 提高模拟模型的准确性.
|
||||
|
||||
|
||||
@@ -76,8 +76,8 @@ blogexcerpt: 虚拟化 & KVM 子系统
|
||||
| 2025/07 | AI 辅助调度 Load Balancing | [LWN 2025/07/01, Improved load balancing with machine learning](https://lwn.net/Articles/1027096 | Free5GC | Ching-Chun("Jim") Huang 展示了其将 (本地) 机器学习应用于在复杂系统上调度器负载均衡的工作成果, [Improve Load Balancing with Machine Learning Techniques based on sched_ext Framework](https://static.sched.com/hosted_files/ossna2025/d2/Improve-Load-Balancing-With-Machine-Learning-Techniques-based-on-sched_ext.pdf). Free5GC 开发人员研究通过机器学习来改进调度器的负载均衡. 在此类系统上进行调度需要考虑许多输入维度; 此外, 调度程序还必须考虑每个任务的优先级、其 CPU 要求、到目前为止的虚拟运行时间以及最近的 CPU 使用模式. 必须考虑每个 CPU 上的负载, 以及 NUMA 距离、缓存共享和工作频率. 当然, 还有特定于工作负载的因素. 基于 scx_rusty 来尝试考虑所有这些参数并决定何时应该将任务从一个 CPU 移动到另一个 CPU. 它最初以数据收集模式运行, 查看迁移决策及其结果; 然后, 这些决策用于训练模型(在用户空间中), 该模型随后存储在 BPF 映射中. 然后, 调度程序可以在内核内使用此模型来做出负载平衡决策. 这些决策的结果会不断被测量并报告回用户空间, 从而随着时间的推移更新模型. 在使用最重要的内核编译基准测试的测试中, 该调度器的编译时间比 EEVDF 调度器缩短了 10%, 任务迁移的数量减少了 77%. Huang 总结了机器学习在这种情况下起作用的原因: 在这种复杂的环境中进行调度是一个模式识别问题, 而神经网络擅长这项任务. 调度程序能够平衡相互竞争的目标, 并自动针对新的架构和工作负载进行自我重新训练. 调度程序能够为每个迁移决策考虑 15 个单独的参数, 并根据结果调整其模型. [2025 Open Source Summit North America](https://events.linuxfoundation.org/open-source-summit-north-america), 参见 LWN 报道 [LWN 2025/07/01, Improved load balancing with machine learning](https://lwn.net/Articles/1027096), 代码 [scx_rusty](https://github.com/vax-r/scx/tree/scx_rusty_MLLB). |
|
||||
| 2025/03 | AI 辅助 CPU/GPU 调频 | [An Intelligent Scheduling Approach on Mobile OS for Optimizing UI Smoothness and Power](https://dl.acm.org/doi/full/10.1145/3674910) | 提出了 MobiRL 一种基于强化学习的调度器, 用于智能地调整移动系统中的 CPU/GPU 频率, 以准确满足用户需求. MobiRL监测移动系统状态, 并通过执行 CPU/GPU 频率调整操作自主学习以优化用户界面的流畅度和功耗. 在最新交付的智能手机上的实验结果表明, MobiRL 在真实设备上的表现优于广泛使用的商业调度器——分别降低了 4.1% 的掉帧率和 42.8% 的功耗. 此外, 与使用 Q 学习进行 CPU 频率调度的研究相比, MobiRL 实现了最高 2.5% 的掉帧率降低, 并分别减少了 32.6% 的功耗. |
|
||||
| 2025/03/25 | AI 辅助 CPU/GPU/DDR 调频 | [CRAVE: Analyzing Cross-Resource Interaction to Improve Energy Efficiency in Systems-on-Chip](https://dl.acm.org/doi/10.1145/3689031.3717498) | 提出了 CRAVE, 它利用学习到的设计特性来控制动态电压和频率调节. 在设计阶段, CRAVE 通过在三个主要移动系统组件(CPU内核、GPU和内存)的频率设置多元空间中采样, 为系统级芯片(SoC)确定最优的 DVFS 设置. 在运行时, CRAVE 以类似于当今操作系统内核中内置的现有简单调速器的方式监控资源利用率, 然后应用之前学习到的最优设置. 在两个真实的移动平台上实现了CRAVE: ODROID-XU4 和 NVIDIA Jetson TX2. 与最佳的内置 Linux 调速器相比, CRAVE 在 TX2 上将性能提高了20%, 同时能耗降低了 16%, 在 XU4 上也取得了类似的提升. 此外, 与最先进的应用驱动调速器相比, CRAVE 也表现出了一定的优势, 性能提高了 16%, 能耗节省了10%. |
|
||||
| 2025/07/11 | AI 生成操作系统交互界面 | | [NeuralOS: Towards Simulating Operating Systems via Neural Generative Models](https://arxiv.org/abs/2507.08800) | 滑铁卢大学 | 名为 NeuralOS 的创新性神经框架. 其核心目标是利用深度生成模型, 完全模拟一个操作系统的图形用户界面(GUI). 不同于传统依赖预编程内核和应用程序的操作系统, NeuralOS 通过一个深度神经网络, 直接根据用户的输入(如鼠标移动、点击和键盘事件)来预测并生成屏幕的下一帧图像.<br>核心贡献可以概括为以下几点:<br>1. 提出新范式: 首次尝试将整个操作系统 GUI 交互过程建模为一个端到端的生成问题, 为实现完全自适应、个性化的未来人机交互界面提供了概念验证(Proof-of-Concept).<br>2. 设计创新架构: 提出了一种受传统操作系统启发的模块化架构, 该架构由一个负责追踪系统状态的循环神经网络(RNN)"内核"和一个负责生成屏幕图像的扩散模型"渲染器"组成, 有效处理了动态交互中的长期依赖和高保真视觉生成.<br>3. 开发有效训练策略: 设计了一套复杂的多阶段训练流程, 包括 RNN 预训练、联合训练、计划采样和课程学习等, 成功解决了直接训练生成式交互模型时遇到的梯度消失、渲染器忽略控制信号和误差累积等关键挑战.<br>4. 构建大规模数据集: 通过结合 AI Agent 的智能探索和随机探索, 建立了一个大规模、多样化的 Ubuntu XFCE 桌面交互数据集, 为训练此类复杂的交互模型奠定了基础. 参见 [知乎--周舒畅--远程桌面蒸馏成RNN+扩散模型:NeuralOS: Towards Simulating Operating Systems via Neural Generative Models](https://zhuanlan.zhihu.com/p/1928592949131863847) |
|
||||
| 2025/10/21 | AI 实现补丁管理,实现补丁管理效率倍级提升| openEuler | [基于 openEuler Intelligence打造补丁管理智能体,实现补丁管理效率倍级提升](https://mp.weixin.qq.com/s/SwRTuH6iDISfD3QucNeOzw) | openEuler Intelligence 服务引擎, 实现操作系统级的 Agent 智能体与 MCP 工具管理, 提供全局、高效、低噪的智能服务框架. |
|
||||
| 2025/07/11 | AI 生成操作系统交互界面 | | [NeuralOS: Towards Simulating Operating Systems via Neural Generative Models](https://arxiv.org/abs/2507.08800) | 滑铁卢大学 | 名为 NeuralOS 的创新性神经框架. 其核心目标是利用深度生成模型, 完全模拟一个操作系统的图形用户界面(GUI). 不同于传统依赖预编程内核和应用程序的操作系统, NeuralOS 通过一个深度神经网络, 直接根据用户的输入(如鼠标移动、点击和键盘事件)来预测并生成屏幕的下一帧图像.<br>核心贡献可以概括为以下几点:<br>1. 提出新范式: 首次尝试将整个操作系统 GUI 交互过程建模为一个端到端的生成问题, 为实现完全自适应、个性化的未来人机交互界面提供了概念验证(Proof-of-Concept).<br>2. 设计创新架构: 提出了一种受传统操作系统启发的模块化架构, 该架构由一个负责追踪系统状态的循环神经网络(RNN)"内核"和一个负责生成屏幕图像的扩散模型"渲染器"组成, 有效处理了动态交互中的长期依赖和高保真视觉生成.<br>3. 开发有效训练策略: 设计了一套复杂的多阶段训练流程, 包括 RNN 预训练、联合训练、计划采样和课程学习等, 成功解决了直接训练生成式交互模型时遇到的梯度消失、渲染器忽略控制信号和误差累积等关键挑战.<br>4. 构建大规模数据集: 通过结合 AI Agent 的智能探索和随机探索, 建立了一个大规模、多样化的 Ubuntu XFCE 桌面交互数据集, 为训练此类复杂的交互模型奠定了基础. 参见 [知乎--周舒畅--远程桌面蒸馏成RNN+扩散模型: NeuralOS: Towards Simulating Operating Systems via Neural Generative Models](https://zhuanlan.zhihu.com/p/1928592949131863847) |
|
||||
| 2025/10/21 | AI 实现补丁管理, 实现补丁管理效率倍级提升| openEuler | [基于 openEuler Intelligence打造补丁管理智能体, 实现补丁管理效率倍级提升](https://mp.weixin.qq.com/s/SwRTuH6iDISfD3QucNeOzw) | openEuler Intelligence 服务引擎, 实现操作系统级的 Agent 智能体与 MCP 工具管理, 提供全局、高效、低噪的智能服务框架. |
|
||||
| 2026/01/11 | 利用大语言模型(LLM) 辅助解决 Linux 内核中的 Git 合并冲突 | [LLMinus: LLM-Assisted Merge Conflict Resolution](https://lore.kernel.org/all/20260111212915.195056-1-sashal@kernel.org) | Sasha Levin <sashal@kernel.org> | 引入名为 **LLMinus** 的工具, 利用大语言模型( LLM) 辅助解决 Linux 内核中的 Git 合并冲突. LLMinus 通过构建历史冲突解决案例的数据库, 使用语义嵌入( 基于 BGE-small 模型) 查找相似冲突, 并为 LLM 构建包含上下文的提示以辅助解决当前冲突.<br>工具支持 `learn`、`vectorize`、`find`、`resolve`、`pull` 等命令, 可与任意支持标准输入的 LLM 配合使用. 新版本改进包括: 支持自适应 RAG 缩减的 token 限制、通过构建测试检测语义冲突, 以及更新 HTTP 客户端.<br>LLMinus 正在通过子系统集成分支进行实际测试, 相关仓库可供参考.该工具旨在辅助而非替代现有合并流程. | v2 ☐☑✓ | [2026/01/11, LORE v2, 0/7](https://lore.kernel.org/all/20260111212915.195056-1-sashal@kernel.org) |
|
||||
| 2025/02/25 | 通过 AI 生成 eBPF 程序 | [Kgent: Kernel Extensions Large Language Model Agent](https://dl.acm.org/doi/10.1145/3672197.3673434) | NA | Kgent 简化了传统上复杂的 eBPF 程序编写过程. 通过将用户提示语翻译成 eBPF 代码, 消除了对深厚作系统内核知识的需求. 该工具结合了程序理解、符号执行和反馈循环, 确保合成程序准确且符合用户意ds图. 参见 [Simplifying Kernel Programming: The LLM-Powered eBPF Tool](https://eunomia.dev/blog/2024/07/11/simplifying-kernel-programming-the-llm-powered-ebpf-tool) |
|
||||
| [](https://github.com/xlang-ai/OSWorld-G) |
|
||||
@@ -93,10 +93,19 @@ blogexcerpt: 虚拟化 & KVM 子系统
|
||||
| 2025/09 | decode 阶段自适应选择 CPU 核 | [MNN-AECS: Energy Optimization for LLM Decoding on Mobile Devices via Adaptive Core Selection](https://arxiv.org/abs/2506.19884) | NA | 分析显示, 受内存限制的 LLM 解码阶段在能耗中占主导地位, 然而, 大多数现有工作都集中在加速预填充阶段, 忽视了能效问题. 引入了自适应能效核心选择(AECS), 并将其集成到 MNN 中, 创建了能效版本 MNN-AECS, 这是首个无需 root 权限或操作系统修改即可实现能效 LLM 解码的引擎级系统解决方案. MNN-AECS 旨在通过动态选择低功耗 CPU 核, 在保持解码速度在可接受的减速阈值内的同时, 降低 LLM 解码的能耗. 作者在 5 款安卓设备和 2 款 iOS 设备上, 对 5 种不同规模的流行 LLM 进行了 MNN-AECS 评估. 与原始 MNN 相比, MNN-AECS 在所有 7 款设备和 4 个数据集上的平均能耗降低了 23%, 且速度没有减慢. 与其他引擎(包括 llama.cpp、executorch、mllm 和 MediaPipe)相比, MNN-AECS 平均能节省 39% 至 78% 的能耗, 并实现 12% 至 363% 的速度提升. |
|
||||
| 2025/10 | Xsched 异构调度 | [支持 NPU 算力切分](https://gitee.com/openeuler/kernel/issues/IC5EHB) | openEuler | 基于 ARM64 + 910B 实现的 NPU 卡支持算力时分抢占特性, 支持 NPU share、带宽管控等特性.<br>算力时分抢占: 通过 AI 任务的算力抽象, 构建异构时分调度机制, 实现异构多任务毫秒级抢占, 多推理单卡调度抢占小于 10 毫秒;<br>
|
||||
算力带宽管控: 基于算力带宽标准化语义, 构建任务级的算力管控分配机制, 实现算力隔离与共享, 提升吞吐. |
|
||||
| 2025/10 | GPU eBPF profiling | NA | NA | |[知乎--云微--GPU可观测性差距:为什么我们需要GPU上的eBPF](https://zhuanlan.zhihu.com/p/1962141761364301211), [迈向可编程观测:在GPU Kernel中构建类eBPF风格的性能探针](https://developer.aliyun.com/article/1681315), [Neutrino: Fine-grained GPU Kernel Profiling via Programmable Probing, OSDI '25](https://github.com/open-neutrino/neutrino) |
|
||||
| 2025/10 | GPU eBPF profiling | NA | NA | |[知乎--云微--GPU可观测性差距: 为什么我们需要GPU上的eBPF](https://zhuanlan.zhihu.com/p/1962141761364301211), [迈向可编程观测: 在GPU Kernel中构建类eBPF风格的性能探针](https://developer.aliyun.com/article/1681315), [Neutrino: Fine-grained GPU Kernel Profiling via Programmable Probing, OSDI '25](https://github.com/open-neutrino/neutrino) |
|
||||
| 2026/02 | [AgenticOS 2026, AgentCgroup: Understanding and Controlling OS Resources of AI Agents](https://arxiv.org/abs/2602.09345) | [AgenticOS 2026, AgentCgroup: Understanding and Controlling OS Resources of AI Agents]() | 这篇论文最有价值的地方, 不是单纯提出了一个叫 AgentCgroup 的新机制, 而是先用实验把一个长期被忽略的问题讲清楚了: 对于 AI coding agent 这类工作负载, 真正拖慢任务完成时间、真正限制并发密度、真正导致资源治理失效的, 已经不只是模型推理本身, 而是 Agent 在沙箱里不断调用工具、启动子进程、运行测试、安装依赖、反复重试 这一整套 OS execution path. 换句话说, Agent 问题已经不是"只要把模型换强一点就行", 而是"执行系统本身已经成为瓶颈". [mm: memcontrol: Add BPF hooks for memory controller](https://lore.kernel.org/linux-mm/cover.1770194182.git.zhuhui@kylinos.cn), [AgentCgroup: 理解与控制AI代理的操作系统资源](https://www.alphaxiv.org/zh/overview/2602.09345v2) [](https://github.com/eunomia-bpf/agentcgroup), [CSDN 博客--山河已无恙--AgentCgroup论文学习: AI Agent为什么需要新的OS资源控制](https://blog.csdn.net/sanhewuyang/article/details/159995329), [[论文评述] AgentCgroup: Understanding and Controlling OS Resources of AI Agents](https://www.themoonlight.io/zh/review/agentcgroup-understanding-and-controlling-os-resources-of-ai-agents) |
|
||||
|
||||
|
||||
## 1.3 AI Tools
|
||||
## 1.3 AgentOS
|
||||
-------
|
||||
|
||||
| 日期 | 概要 | 论文 / 链接 | 团队 | 描述 |
|
||||
|:---:|:----:|----------:|:----:|:----:|
|
||||
| 2026/07/26 | 提出 Agent 时代需要"Agent 操作系统", 像 POSIX 之于经典 OS、Kubernetes 之于云那样, 规定一套共识抽象. | [Towards an Agent Operating System - Lessons from Classical and Cloud OS](https://arxiv.org/abs/2607.25076) | Gosia Steinder, Hubertus Franke(IBM Research) | 本文提出: Agent 时代正处于 POSIX 出现前夜, 业界需要像 POSIX 统一经典操作系统、Kubernetes 统一云那样, 通过"语义差距"方法论从经典原语推导出 13 个 Agent-OS 原语并精确规定其语义, 才能让 Agent 应用可移植、平台可组合——并已在开源项目 rossoctl 中实现其中一部分. |
|
||||
|
||||
|
||||
## 1.4 AI Tools
|
||||
-------
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|
||||
+155
-76
File diff suppressed because it is too large
Load Diff
@@ -1460,7 +1460,10 @@ AMD-pstate 驱动程序利用 ITMT 体系结构提供的功能和数据结构,
|
||||
| 2019 | NA | [Make the Most out of Last Level Cache in Intel Processors, EuroSys '19](https://dl.acm.org/doi/10.1145/3302424.3303977) | NA | 在现代(Intel)处理器中, 最后一级缓存(LLC)被划分为多个切片, 并且未记录的哈希算法(又名复杂寻址)在这些切片之间映射内存地址空间的不同部分, 以增加有效内存带宽. 在仔细研究了英特尔的复杂寻址后, 我们引入了一种切片感知内存管理方案, 可以通过 LLC 更快地访问常用数据. 使用我们提出的方案, 我们表明, 对于 100% 和 95% 的 GET 工作负载, 键值存储可以分别将其平均性能提高 ~12.2% 和 ~11.4%. 此外, 我们提出了 CacheDirector, 这是一种网络 I/O 解决方案, 它扩展了直接数据 I/O(DDIO), 并将数据包的标头放置在最接近相关处理核心的 LLC 切片中. 我们将 CacheDirector 作为 DPDK 的扩展实施, 并评估了我们针对网络功能虚拟化(NFV)系统中延迟关键型应用程序提出的解决方案. 评估结果表明, CacheDirector 通过将以 100 Gbps 运行的优化 NFV 服务链的尾部延迟(90-99 个百分位数)减少多达 119 μs(~21.5%) 来加快数据包处理速度. 最后, 分析了切片感知内存管理实现缓存隔离的有效性. |
|
||||
| 2019 | NA | [CoPart: Coordinated Partitioning of Last-Level Cache and Memory Bandwidth for Fairness-Aware Workload Consolidation on Commodity Servers](https://dl.acm.org/doi/10.1145/3302424.3303963) | NA | 工作负载整合是一种广泛使用的技术, 用于最大限度地提高云和数据中心计算中的服务器资源利用率. 最近的商用 CPU 支持最后一级缓存(LLC) 和内存带宽分区功能, 可用于确保整合工作负载的公平性. 虽然先前的工作已经提出了多种资源分区技术, 但表征 LLC 和内存带宽分区对整合工作负载公平性的影响以及研究系统软件支持以协调方式动态控制 LLC 和内存带宽分区仍然没有探索. 为了弥合这一差距, 我们提出了 LLC 和内存带宽分区的深入性能和公平性表征. 在表征结果的指导下, 我们提出了 CoPart, 即 LLC 和内存带宽的协调分区, 用于商用服务器上的公平感知工作负载整合. CoPart 动态分析整合应用程序的特性, 并以协调的方式在应用程序之间分配 LLC 和内存带宽, 以提高整体公平性. 我们的定量评估表明, CoPart 显着提高了整合应用程序的公平性(例如, 公平性平均比将资源平均分配给合并应用程序的资源分配策略高 57.3%), 在各种应用程序和系统配置中稳健地提供了高公平性, 并且产生了较小的性能开销. |
|
||||
|
||||
# 7 GPU
|
||||
# 7 GPU/NPU
|
||||
-------
|
||||
|
||||
## 7.1 GPU
|
||||
-------
|
||||
|
||||
[phoronix, 2024/12/11, How AMD Is Taking Standard C/C++ Code To Run Directly On GPUs](https://www.phoronix.com/news/AMD-Standard-C-Code-GPUs)
|
||||
@@ -1475,6 +1478,14 @@ AMD-pstate 驱动程序利用 ITMT 体系结构提供的功能和数据结构,
|
||||
| 2026/01/04 | HongleiHuang-amd | [New AMD Linux Driver Patches Posted For Batch Userptr Allocation Support](https://www.phoronix.com/news/AMDKFD-Batch-Userptr-Allocation) | AMDKFD 内核计算驱动最近正在开发的一项新功能是支持批处理用户指针"userptr"分配. 有了这个新的用户空间 API, 将可以支持分配多个非连续的 CPU 虚拟地址范围, 这些地址映射到一个连续的 GPU 虚拟地址. 参加 [phoronix, 2026/01/04, New AMD Linux Driver Patches Posted For Batch Userptr Allocation Support](https://www.phoronix.com/news/AMDKFD-Batch-Userptr-Allocation) | NA | [libhsakmt: Add batch userptr range registration API](https://github.com/ROCm/rocm-systems/commit/ac21716e5d6f68ec524e50eeef10d1d6ad7eae86) |
|
||||
|
||||
|
||||
## 7.2 NPU
|
||||
-------
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:---:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2026/04/15 | Lizhi Hou <lizhi.hou@amd.com> | [accel/amdxdna: Add hardware scheduler time quantum support](https://lore.kernel.org/all/20260415171139.904947-1-lizhi.hou@amd.com) | 邮件主题为新增 AMD XDNA 驱动的硬件调度时间片支持. 主要由 Max Zhen 开发, Lizhi Hou 代提交. 该补丁为硬件调度器添加时间片( time quantum) 配置功能, 以提升多上下文并发执行时的公平性. 调度器通过限制每个上下文的执行时间, 防止长时间任务独占设备, 确保其他任务也能及时执行. 默认时间片设为 30 毫秒, 可通过模块参数 `time_quantum_ms` 调整.<br> 补丁修改了多个文件, 新增 `MSG_OP_UPDATE_PROPERTY` 消息操作码及对应处理逻辑, 用于更新上下文执行时间配额. 在驱动初始化时调用 `aie2_update_prop_time_quota() ` 设置默认时间片. 此外, 更新固件特性表以支持该功能.<br> 目标收件人包括 Oded Gabbay、Jorge Hugo 等相关维护者, 抄送 Linux 内核邮件列表. | v2 ☐☑✓ | [2026/04/15, LORE](https://lore.kernel.org/all/20260415171139.904947-1-lizhi.hou@amd.com) |
|
||||
|
||||
|
||||
<br>
|
||||
|
||||
* 本作品 / 博文 ([AderStep - 紫夜阑珊 - 青伶巷草 Copyright ©2013-2017](http://blog.csdn.net/gatieme) ), 由 [成坚(gatieme)](http://blog.csdn.net/gatieme) 创作.
|
||||
|
||||
@@ -618,6 +618,24 @@ glcc 则实现了 eBPF 驱动和 libbpf 的支持, 允许 eBPF 程序无需修
|
||||
| [grafana/phlare](https://github.com/grafana/phlare) | 一个水平可扩展, 高可用, 多租户的持续性能分析聚合系统. 它已被 Grafana LAB 收购, 未来的 |
|
||||
| [maxgio92/yap](https://github.com/maxgio92/yap) | 一个基于 Go 和 eBPF 的低开销的采样 CPU Profiler, 它不需要在被分析的二进制文件中进行任何插装. [Unleashing the power of frame pointers pt.1 - The execution environment](https://blog.maxgio.me/posts/unleashing-power-frame-pointers-execution-environment), [Unleashing the power of frame pointers for profiling pt.2 - Writing a simple profiler](https://blog.maxgio.me/posts/unleashing-power-frame-pointers-writing-simple-continuous-profiler) |
|
||||
|
||||
|
||||
## 8.8 bpftrace
|
||||
-------
|
||||
|
||||
|
||||
| 项目 | 描述 | 支持 | 推荐星级 | Star 数量 |
|
||||
|:---:|:----:|:---:|:-------:|:--------:|
|
||||
| [multikernel/kernelscript](https://github.com/multikernel/kernelscript) | [2026/05/24, phoronix, KernelScript: A Programming Language For Kernel Customization & App Optimizations](https://www.phoronix.com/news/KernelScript) | NA | ⭐ | 479 |
|
||||
|
||||
## 8.9 OTHER
|
||||
-------
|
||||
|
||||
|
||||
| 项目 | 描述 | 支持 | 推荐星级 | Star 数量 |
|
||||
|:---:|:----:|:---:|:-------:|:--------:|
|
||||
| [pandaadir05/snoop](https://github.com/pandaadir05/snoop) | 基于 eBPF 的现代系统调用跟踪工具, 类似 strace 但具有实时 TUI 界面、智能过滤器、TLS 解密和可读输出。支持多种输出格式(raw、json、explain)、60+ 系统调用参数解码、容器支持、TLS 捕获、堆跟踪、记录回放和火焰图生成. 使用 Rust 和 aya 编写 eBPF 程序, 无需内核模块和 C 工具链. | 系统调用跟踪、性能分析 | ⭐ | 150 |
|
||||
| [pktz](https://github.com/immanuwell/pktz) | 基于 eBPF 的网络流量监控工具, 提供进程级和连接级的实时流量监控. 核心功能包括: 实时 RX/TX 速率显示、连接详情查看、Unicode 图表、GeoIP 标记 + ASN 信息、DNS 解析. 支持三种模式: TUI 交互模式、Log 模式(NDJSON 输出)、Prometheus metrics 模式. 技术上基于 Go 语言 + eBPF 技术, 直接挂钩内核, 无需轮询 /proc, 无采样, 每个字节每个进程都不放过. 适用于网络流量监控、调试、安全审计等场景. | Linux | ⭐ | 83 |
|
||||
|
||||
# 9 WASM(WebAssembly)
|
||||
-------
|
||||
|
||||
|
||||
@@ -147,6 +147,8 @@ https://lwn.net/Articles/422487/
|
||||
| 2009/08/05 | Arjan van de Ven <arjan@infradead.org> | [Implement crashkernel=auto](https://lore.kernel.org/patchwork/cover/166256) | 实现 crashkernel=auto . | v1 ☐ | [PatchWork](https://lore.kernel.org/patchwork/cover/166256) |
|
||||
| 2022/08/28 | Baoquan He <bhe@redhat.com> | [arm64, kdump: enforce to take 4G as the crashkernel low memory end](https://patchwork.kernel.org/project/linux-mm/cover/20220828005545.94389-1-bhe@redhat.com/) | 671768 | v1 ☐☑ | [LORE v1,0/2](https://lore.kernel.org/r/20220828005545.94389-1-bhe@redhat.com) |
|
||||
| 2024/03/05 | Steven Rostedt <rostedt@goodmis.org> | [tracing: Persistent traces across a reboot or crash](https://lore.kernel.org/all/20240306015910.766510873@goodmis.org) | [Experimental Linux Patches Allow Kernel Tracing To Work Past Reboots/Crashes](https://www.phoronix.com/news/Linux-Tracing-Post-Reboots). | v1 ☐☑✓ | [LORE v1,0/8](https://lore.kernel.org/all/20240306015910.766510873@goodmis.org) |
|
||||
| 2025/11/19 | Eugen Hristev <eugen.hristev@linaro.org> | [Introduce meminspect](https://lore.kernel.org/all/20251119154427.1033475-1-eugen.hristev@linaro.org) | Eugen Hristev 提出了一项名为 **meminspect** 的新机制, 用于在 Linux 内核中标记特定内存区域以进行调试、统计和内存转储. 该机制不依赖于 panic handler 或运行中的内核, 适用于 pstore、kdump 等机制无法使用的设备. meminspect 可生成类似 `/proc/vmcore` 的核心镜像, 供 crash 工具或 GDB 分析.<br> 该补丁系列基于此前的 kmemdump 和 minidump 实现, 已重命名为 meminspect 并移至 `kernel/` 目录. 它引入了两个驱动: **Qualcomm Minidump** 和 **Debug Kinfo**( 用于 Android) . meminspect 利用 memblock 标志和 vmcoreinfo 注册内存区域, 并在系统运行时维护内存区域表.<br> 补丁已基于社区反馈多次迭代, 包括移除 . section、整合进 vmcoreinfo、调整 API 和文档等. 作者将在 Plumbers 会议中进一步讨论该方案.<br> 使用时需启用 `CONFIG_MEMINSPECT`、`CONFIG_CRASH_DUMP` 和相关驱动, 并通过工具( 如 qdl 或 edl) 提取内存区域后合并分析. | v1 ☐☑✓ | [2025/11/19, LORE v1, 0/26](https://lore.kernel.org/all/20251119154427.1033475-1-eugen.hristev@linaro.org) |
|
||||
|
||||
|
||||
[crash extension modules](https://crash-utility.github.io/extensions.html)
|
||||
|
||||
@@ -438,7 +440,7 @@ $reclaim = current\_mem \times reclaim\_ratio \times max(0,1 – \frac{psi_some}
|
||||
|
||||
|
||||
|
||||
## 11.3 Userspace counter access
|
||||
## 11.3 Userspace Counter Access
|
||||
-------
|
||||
|
||||
x86 和 arm64 都支持直接访问用户空间中的事件计数器. 访问序列并不简单, 目前存在于 perf 测试代码 (tools/perf/arch/x86/tests/rdpmc.c) 中, 在 PAPI 和 libpfm4 等项目中有类似的用例程序.
|
||||
@@ -468,14 +470,14 @@ x86 和 arm64 都支持直接访问用户空间中的事件计数器. 访问序
|
||||
| 2022/03/22 | Stephane Eranian <eranian@google.com> | [perf/x86/amd: Add AMD Fam19h Branch Sampling support](https://lore.kernel.org/all/20220322221517.2510440-1-eranian@google.com) | 引入 CONFIG_PERF_EVENTS_AMD_BRS. perf 支持 BRS. AMD 系列 19h "Zen 3" 处理器新增了分支采样功能 BRS, 用于收集代码执行期间所采用分支的详细信息. 该功能可用于 AMD 处理器上的 AutoFDO 样式优化, 编译器利用收集的硬件数据来做出更明智和准确的优化决策. | v7 ☑✓ 5.19-rc1 | [LORE v7,0/13](https://lore.kernel.org/all/20220322221517.2510440-1-eranian@google.com) |
|
||||
|
||||
|
||||
## 11.5 perf-KWork
|
||||
## 11.5 perf kwork
|
||||
-------
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:---:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2022/07/09 | Yang Jihong <yangjihong1@huawei.com> | [perf: Add perf kwork](https://lore.kernel.org/all/20220709015033.38326-1-yangjihong1@huawei.com) | 开发者经常需要分析内核工作的时间属性, 例如 irq、softirq 和工作队列, 包括特定中断的延迟和运行时间. 目前, 这些事件具有内核跟踪点, 但 perf 工具不直接分析这些事件的延迟. perf kwork 工具用于跟踪内核工作的时间属性(如 irq、softirq 和 workqueue), 包括运行时、延迟和时间历史, 使用 perf 工具中的基础设施来允许跟踪额外的目标, 我们还使用 bpf 跟踪来收集和过滤内核中的数据, 以解决大 perf 数据量和额外文件系统中断的问题. | v3 ☐☑✓ | [LORE v3,0/17](https://lore.kernel.org/all/20220709015033.38326-1-yangjihong1@huawei.com) |
|
||||
|
||||
## 11.6 perf-lock
|
||||
## 11.6 perf lock
|
||||
-------
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
@@ -1305,7 +1307,7 @@ Fedora 尝试优化 systemd 开机以及重启的时间, 参见 phoronix 报道
|
||||
| 2025/05/12 | Nam Cao <namcao@linutronix.de> | [RV: Linear temporal logic monitors for RT application](https://lore.kernel.org/all/cover.1747046848.git.namcao@linutronix.de) |旨在为实时( RT) 应用引入基于线性时序逻辑( LTL)的运行时验证( RV) 监控机制. 补丁系列包括以下关键内容: <br>1. LTL监控支持: 新增 LTL 监控模块, 相比原先的确定性自动机, LTL 更简洁直观,适合表达实时规则;<br>2. RT 应用监控器(rtapp): 作为容器封装子监控模块;<br>3. 页错误监控( rtapp_pagefault): 用于检测实时任务中的页错误; <br>4. 睡眠监控( rtapp_sleep): 检测实时线程中可能引起延迟的睡眠行为;<br>5. 配置支持: 允许配置每任务监控器数量, 以同时启用多个监控; <br>6. 文档更新: 补充 LTL 和监控器相关文档; <br>7. 代码结构优化: 整合 dot2k 和 rvgen 工具, 重构模板与类结构, 提升代码可维护性.<br>各版本更新主要修复脚本问题、优化检测逻辑、处理边缘情况, 并调整部分架构的跟踪点. 补丁已覆盖 x86、ARM64 和 RISC-V 架构. 参见 [LWN, 2025/07/30, Extending run-time verification for the kernel](https://lwn.net/Articles/1030685). | v8 ☐☑✓ | [2025/05/12, LORE v8, 0/22](https://lore.kernel.org/all/cover.1747046848.git.namcao@linutronix.de) |
|
||||
| 2025/07/30 | Nam Cao <namcao@linutronix.de> | [rv: LTL per-cpu monitor type and real-time scheduling monitor](https://lore.kernel.org/all/cover.1753879295.git.namcao@linutronix.de) | 邮件提出了一组 5 个补丁, 旨在为 Linux 内核的 Roving( rv) 子系统添加对线性时序逻辑(LTL) 的 per-cpu 监控类型支持, 并新增一个用于验证实时调度(real-time scheduling) 的监控模块. 该系列补丁首先对现有 LTL 监控代码进行重构, 以支持多种监控类型; 随后实现 per-cpu 监控机制, 类似于现有的确定性自动机监控. 此外, 补丁还引入了新的 trace point 用于实时任务的入队与出队事件, 并通过 rvgen 工具生成LTL 监控代码. 最终新增的 rts 监控模块可检测实时调度行为是否符合预期. | v1 ☐☑✓ | [2025/07/30, LORE v1, 0/5](https://lore.kernel.org/all/cover.1753879295.git.namcao@linutronix.de) |
|
||||
| 2025/07/23 | Gabriele Monaco <gmonaco@redhat.com> | [tools/verification: Improvements to rv and rvgen](https://lore.kernel.org/all/20250723161240.194860-1-gmonaco@redhat.com) | 改进 Linux 内核中的 rv 和 rvgen 验证工具. 主要内容包括: <br>1. 修复 rv 工具在使用 -s 选项时跳过 idle 任务的问题;<br>2. 增加 rv 对 SIGTERM 信号的优雅终止处理; <br>3. 修改 dot2c 脚本避免生成超过 100 列的代码行; <br>4. 调整 RV Kconfig 文件中嵌套监控模块的顺序; <br>5. 在 DA 监控初始化失败时返回正确错误码, 而非 0. | v1 ☐☑✓ | [2025/07/23, LORE v1, 0/5](https://lore.kernel.org/all/20250723161240.194860-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2025/08/06, LORE v2, 0/5](https://lore.kernel.org/all/cover.1754466623.git.namcao@linutronix.de)<br>*-*-*-*-*-*-*-* <br>[2025/08/11, LORE v3, 0/5](https://lore.kernel.org/all/cover.1754900299.git.namcao@linutronix.de) |
|
||||
| 2025/08/14 | Gabriele Monaco <gmonaco@redhat.com> | [rv: Add Hybrid Automata monitor type, per-object and deadline monitors](https://lore.kernel.org/all/20250814150809.140739-1-gmonaco@redhat.com) | 改进 Linux 内核中的 RV( Runtime Verification) 监控功能, 目标是增强内核运行时验证能力, 提升调度与实时性监控的准确性. 核心内容包括: <br>1. 混合自动机(Hybrid Automata) 监控类型: 扩展确定性自动机, 支持环境变量约束判断, 适用于定时自动机场景. <br>2. 对象级监控(Per-object Monitors): 支持为任意对象(如任务) 创建监控实例, 通过 ID 索引存储监控数据. <br>3. 期限(Deadline)监控集合: 新增 throttle 和 nomiss 监控模块, 用于验证 deadline 调度器的时间行为. <br>4. 对 da_monitor 进行宏清理与重构, 提升代码可维护性. <br>5. 多处文档更新与 rvgen 工具链改进, 支持新监控类型的生成与集成. | v1 ☐☑✓ | [2025/08/14, LORE v1, 0/17](https://lore.kernel.org/all/20250814150809.140739-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/19, LORE v2, 0/20](https://lore.kernel.org/all/20250919140954.104920-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2025/12/05, LORE v3, 0/20](https://lore.kernel.org/all/20251205131621.135513-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2026/01/22, LORE v3, 0/20](https://lore.kernel.org/all/20260122155500.362683-1-gmonaco@redhat.com) |
|
||||
| 2025/08/14 | Gabriele Monaco <gmonaco@redhat.com> | [rv: Add Hybrid Automata monitor type, per-object and deadline monitors](https://lore.kernel.org/all/20250814150809.140739-1-gmonaco@redhat.com) | 改进 Linux 内核中的 RV( Runtime Verification) 监控功能, 目标是增强内核运行时验证能力, 提升调度与实时性监控的准确性. 核心内容包括: <br>1. 混合自动机(Hybrid Automata) 监控类型: 扩展确定性自动机, 支持环境变量约束判断, 适用于定时自动机场景. <br>2. 对象级监控(Per-object Monitors): 支持为任意对象(如任务) 创建监控实例, 通过 ID 索引存储监控数据. <br>3. 期限(Deadline)监控集合: 新增 throttle 和 nomiss 监控模块, 用于验证 deadline 调度器的时间行为. <br>4. 对 da_monitor 进行宏清理与重构, 提升代码可维护性. <br>5. 多处文档更新与 rvgen 工具链改进, 支持新监控类型的生成与集成. | v1 ☐☑✓ | [2025/08/14, LORE v1, 0/17](https://lore.kernel.org/all/20250814150809.140739-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/19, LORE v2, 00/20](https://lore.kernel.org/all/20250919140954.104920-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2025/12/05, LORE v3, 00/20](https://lore.kernel.org/all/20251205131621.135513-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2026/01/22, LORE v3, 00/20](https://lore.kernel.org/all/20260122155500.362683-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2026/03/10, LORE v7, 00/15](https://lore.kernel.org/all/20260310105627.332044-1-gmonaco@redhat.com)<br>*-*-*-*-*-*-*-* <br>[2026/03/30, LORE v8, 00/12](https://lore.kernel.org/all/20260330111010.153663-1-gmonaco@redhat.com) |
|
||||
|
||||
|
||||
# 21 新语言支持
|
||||
@@ -1410,6 +1412,13 @@ Fedora 尝试优化 systemd 开机以及重启的时间, 参见 phoronix 报道
|
||||
|
||||
[A look at dynamic linking](https://lwn.net/Articles/961117/)
|
||||
|
||||
# 25 API
|
||||
-------
|
||||
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:---:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2026/05/29 | Sasha Levin <sashal@kernel.org> | [Kernel API Specification Framework](https://lore.kernel.org/all/20260529233311.1901670-1-sashal@kernel.org) | 旨在为内核 API 提供形式化规范机制, 解决长期存在的用户空间接口稳定性问题. 该框架支持参数类型、取值范围、执行上下文、错误码等接口行为的描述, 并可嵌入代码中, 兼具可读性和可解析性.<br> 该框架支持运行时检查( CONFIG_KAPI_RUNTIME_CHECKS) 、debugfs 导出、ftrace 跟踪、静态分析、自动化测试和文档生成. 实现包括 ELF 段存储、kerneldoc 集成、Rust 提取工具( 支持 JSON/RST/文本输出) 及 KUnit 和 TAP 测试套件. 已为 sys_open、sys_close、sys_read、sys_write 和 sys_madvise 添加示例规范.<br> 此版本修复了构建问题、优化了内存布局、改进了 DSL 语法, 并更新了工具链. 补丁集已通过 LTP 测试验证. | v4 ☐☑✓ | [2026/05/29, LORE v4, 0/11](https://lore.kernel.org/all/20260529233311.1901670-1-sashal@kernel.org) |
|
||||
|
||||
|
||||
# X 学习参考
|
||||
-------
|
||||
|
||||
@@ -506,7 +506,8 @@ Proxy Execution 是一种通用形式的优先级继承机制, 它旨在解决
|
||||
| 2024/02/02 | Metin Kaya <metin.kaya@arm.com> | [sched: Add trace events for Proxy Execution (PE)](https://lore.kernel.org/all/20240202083338.1328060-1-metin.kaya@arm.com) | 添加 `sched_[start,finish]_task_selection` 跟踪事件以测量 PE 补丁在任务选择中的延迟. 此外, 在 PE 中引入有趣事件的跟踪事件:<br>1. sched_pe_enque_sleeping_task: 一个任务在睡眠任务(互斥体所有者)的等待队列中排队.<br>2. sched_pe_cross_mote_cpu: 依赖链跨远程 cpu.<br>3. sched_pe_task_is_migration: 互斥所有者任务迁移. 可以通过以下命令测试新的跟踪事件: `perf record -e sched:sched_start_task_selection -e sched:sched_finish_task_selection -e sched:sched_pe_enque_sleeping_task -e sched:sched_pe_cross_mote_cpu -e sched:sched_pe_task_is_migration`. 此补丁基于 John 的 [Proxy Execution v7 补丁系列](https://lore.kernel.org/linux-kernel/CANDhNCrHd+5twWVNqBAhVLfhMhkiO0KjxXBmwVgaCD4kAyFyWw@mail.gmail.com). | v1 ☐☑✓ | [LORE](https://lore.kernel.org/all/20240202083338.1328060-1-metin.kaya@arm.com) |
|
||||
| 2024/11/05 | John Stultz <jstultz@google.com> | [Single CPU Proxy Execution (v13)](https://lore.kernel.org/all/20241106025656.2326794-1-jstultz@google.com) | 这组补丁的主要目的是实现单 CPU 代理执行(Single CPU Proxy Execution)机制, 这是一种通用形式的优先级继承(priority inheritance)方法, 旨在解决某些特定场景下的调度问题.<br>1. 实现单 CPU 代理执行机制, 支持作为构建和运行时选项.<br>2. 重新设计互斥锁的 blocked_on 结构, 以便更好地支持代理执行.<br>3. 处理代理执行带来的假设变化, 确保调度器的正确性.<br>4. 实现初始逻辑, 使锁持有者可以在同一 CPU 上代替等待任务运行.<br>通过这些改动, 调度器在处理某些特定场景下的优先级继承问题时更加高效和灵活, 提高了系统的整体性能和响应速度. 参见 [Paper](https://static.lwn.net/images/conf/rtlws11/papers/proc/p38.pdf) | v13 ☐☑✓ | [LORE v13,0/7](https://lore.kernel.org/all/20241106025656.2326794-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2024/11/25, LORE v14,0/7](https://lore.kernel.org/all/20241125195204.2374458-1-jstultz@google.com) |
|
||||
| 2025/03/12 | John Stultz <jstultz@google.com> | [Single RunQueue Proxy Execution](https://lore.kernel.org/all/20250312221147.1865364-1-jstultz@google.com) | 单运行队列(RunQueue)代理执行(Proxy Execution)的 V15 版本, 这是一种通用的优先级继承机制. <br>1. 问题: 在多核系统中, 当一个高优先级任务被低优先级任务阻塞时, 传统的优先级继承机制可能无法有效解决优先级反转问题, 尤其是在涉及多个运行队列(RunQueue)时.<br>2. 目标: 通过引入代理执行机制, 允许高优先级任务在等待锁时, 将执行权"代理"给其他任务, 从而减少高优先级任务的等待时间, 并提高系统的响应能力.<br>3. 核心思想: 当一个任务被阻塞时, 如果锁的持有者和等待者在同一个运行队列上, 那么可以将执行权"代理"给锁的持有者, 从而避免高优先级任务长时间等待. 参见报道 [phoronix, 2025/07/17, Single RunQueue Proxy Execution Appears Ready For Linux 6.17](http://phoronix.com/news/Linux-6.17-Proxy-Execution). | v15 ☐☑✓ | [2025/03/12, LORE v15,0/7](https://lore.kernel.org/all/20250312221147.1865364-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/04/12, LORE v16, 0/7](https://lore.kernel.org/all/20250412060258.3844594-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/05/16, LORE v17, 0/8](https://lore.kernel.org/all/20250516031814.1870508-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/06/02, LORE RESEND v17, 0/8](https://lore.kernel.org/all/20250602221004.3837674-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/06/25, LORE v18, 0/8](https://lore.kernel.org/all/20250625203110.2299275-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/07/07, LORE RESEND v18, 0/8](https://lore.kernel.org/all/20250707204409.1028494-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/07/12, LORE v19, 0/8](https://lore.kernel.org/all/20250712033407.2383110-1-jstultz@google.com) |
|
||||
| 2025/07/22 | John Stultz <jstultz@google.com> | [Donor Migration for Proxy Execution](https://lore.kernel.org/all/20250722070600.3267819-1-jstultz@google.com) | John Stultz 提交了 Proxy Execution 系列补丁的" Donor Migration" 部分(v20), 旨在实现阻塞等待任务的迁移, 以支持跨 CPU 代理执行锁拥有者. 该部分基于 Peter Zijlstra 已合入的 Single-RQ 补丁<br>主要新增了任务阻塞状态的序列化机制、三态 blocked_on_state 支持、平衡回调清理逻辑、以及支持 donor 迁移与链式迁移. 补丁还涉及对锁定机制和调度器的修改, 以防止任务在不合适的 CPU 上运行.<br>待解决问题包括: dl_server 导致的测试挂起、调度扩展( sched_ext) 兼容性、性能回归测试、以及链式迁移对 RT/DL 负载均衡的保证. | v20 ☐☑✓ | [2025/07/22, LORE v20, 0/6](https://lore.kernel.org/all/20250722070600.3267819-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/04, LORE v21, 0/6](https://lore.kernel.org/all/20250904002201.971268-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/26, LORE v22, 0/6](https://lore.kernel.org/all/20250926032931.27663-1-jstultz@google.com) |
|
||||
| 2025/07/22 | John Stultz <jstultz@google.com> | [(Simple/Optimized) Donor Migration for Proxy Execution](https://lore.kernel.org/all/20250722070600.3267819-1-jstultz@google.com) | John Stultz 提交了 Proxy Execution 系列补丁的" Donor Migration" 部分(v20), 旨在实现阻塞等待任务的迁移, 以支持跨 CPU 代理执行锁拥有者. 该部分基于 Peter Zijlstra 已合入的 Single-RQ 补丁<br>主要新增了任务阻塞状态的序列化机制、三态 blocked_on_state 支持、平衡回调清理逻辑、以及支持 donor 迁移与链式迁移. 补丁还涉及对锁定机制和调度器的修改, 以防止任务在不合适的 CPU 上运行.<br>待解决问题包括: dl_server 导致的测试挂起、调度扩展( sched_ext) 兼容性、性能回归测试、以及链式迁移对 RT/DL 负载均衡的保证. | v20 ☐☑✓ | [2025/07/22, LORE v20, 0/6](https://lore.kernel.org/all/20250722070600.3267819-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/04, LORE v21, 0/6](https://lore.kernel.org/all/20250904002201.971268-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/09/26, LORE v22, 0/6](https://lore.kernel.org/all/20250926032931.27663-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2025/11/24, LORE v24, 00/11](https://lore.kernel.org/all/20251124223111.3616950-1-jstultz@google.com)<br>*-*-*-*-*-*-*-* <br>[2026/03/24, LORE v26, 00/10](https://lore.kernel.org/all/20260324191337.1841376-1-jstultz@google.com) |
|
||||
| 2026/05/26 | Peter Zijlstra <peterz@infradead.org> | [sched/proxy: doodles..](https://lore.kernel.org/all/20260526111609.433880331@infradead.org) | 旨在清理代码并尝试移除 PROXY_WAKING 标志, 改用 ->is_blocked 替代原有的 ->blocked_on 机制.补丁 4 中切换到 ->is_blocked 后, 在 schedule() 和 pick_next_task() 中运行良好, 但在 ttwu_runnable() 中遇到问题, 因缺乏锁保护, 导致延迟任务始终被完全阻塞.作者提到此前曾尝试过 ttwu-delayed 补丁, 或可结合该方案解决此问题.目前仅前 3 个补丁可能具备合入价值, 其余仍需调试. | v1 ☐☑✓ | [2026/05/26, LORE v1, 0/6](https://lore.kernel.org/all/20260526111609.433880331@infradead.org) |
|
||||
|
||||
|
||||
# 12 深入理解并行编程
|
||||
|
||||
@@ -7388,6 +7388,7 @@ KFENCE 的灵感来自于 [GWP-ASan](http://llvm.org/docs/GwpAsan.html), 这是
|
||||
| 时间 | 作者 | 特性 | 描述 | 是否合入主线 | 链接 |
|
||||
|:----:|:----:|:---:|:----:|:---------:|:----:|
|
||||
| 2016/02/03 | Christian Borntraeger <borntraeger@de.ibm.com> | [Optimize CONFIG_DEBUG_PAGEALLOC (x86 and s390)](https://damonitor.github.io) | 优化 CONFIG_DEBUG_PAGEALLOC, 提供了 debug_pagealloc_enabled(), 可以动态的开启 DEBUG_PAGEALLOC. | v4 ☑ 4.6-rc1 | [PatchWork v4,0/4](https://lore.kernel.org/patchwork/patch/642851) |
|
||||
| 2025/11/19 | Eugen Hristev <eugen.hristev@linaro.org> | [Introduce meminspect](https://lore.kernel.org/all/20251119154427.1033475-1-eugen.hristev@linaro.org) | Eugen Hristev 提出了一项名为 **meminspect** 的新机制, 用于在 Linux 内核中标记特定内存区域以进行调试、统计和内存转储. 该机制不依赖于 panic handler 或运行中的内核, 适用于 pstore、kdump 等机制无法使用的设备. meminspect 可生成类似 `/proc/vmcore` 的核心镜像, 供 crash 工具或 GDB 分析. < br> < br> 该补丁系列基于此前的 kmemdump 和 minidump 实现, 已重命名为 meminspect 并移至 `kernel/` 目录. 它引入了两个驱动: **Qualcomm Minidump** 和 **Debug Kinfo**( 用于 Android) . meminspect 利用 memblock 标志和 vmcoreinfo 注册内存区域, 并在系统运行时维护内存区域表. < br> < br> 补丁已基于社区反馈多次迭代, 包括移除 . section、整合进 vmcoreinfo、调整 API 和文档等. 作者将在 Plumbers 会议中进一步讨论该方案. < br> < br> 使用时需启用 `CONFIG_MEMINSPECT`、`CONFIG_CRASH_DUMP` 和相关驱动, 并通过工具( 如 qdl 或 edl) 提取内存区域后合并分析. | v1 ☐☑✓ | [2025/11/19, LORE v1, 0/26](https://lore.kernel.org/all/20251119154427.1033475-1-eugen.hristev@linaro.org) |
|
||||
|
||||
|
||||
## 13.5 tracepoint
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+778
-154
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user