
【导航菜单】
1. 关于我们
2. 技术
3. 服务
4. 行业
5. 24/7支持
6. 招聘信息
7. 联系我们
8. 资助项目
9.
__切换菜单
* 关于我们
* 技术
* 服务
* 行业
* 24/7支持
* 招聘信息
* 联系我们
* 资助项目
*
【Linux 7.2 发布】
Linux 7.2 已于本周按常规计划标记并发布。这个开发周期是有史以来最繁忙的周期之一,仅次于 6.7 版本。鉴于过去三四个周期都相当忙碌,尤其是在修复问题方面,这被认为是 “新常态”。此周期取得了一些有趣的成果,比如缓存感知调度、MGLRU 的改进、sched_ext 子调度器概念、多大小透明大页的自动创建等等。更多详情可查看 LWN 的文章。
和往常一样,Igalia 做出了不少贡献,主要包括 DRM 调度器公平策略。不过,该策略在最后时刻被报告存在回归问题,因此目前为可选启用状态。此外,还为树莓派 4 和 5 的 GPU 实现了出色的运行时电源管理,改进了 sched_ext、futex 并修复了一些常规漏洞。下面来回顾一下亮点内容!
【Igalia 更新日志】
【DRM 调度器公平策略】
在本次发布周期中,原本计划引入并启用 DRM 调度器公平策略。该策略在多个客户端共享 GPU 的场景下,以及轻量级交互客户端与高负载客户端竞争 GPU 资源时,能带来显著的性能提升。遗憾的是,在 7.2 - rc7 测试周期间,该策略被报告存在一个紧急回归问题,因此默认策略仍为旧的先进先出(FIFO)调度器。由于公平策略回归问题的修复方案已明确,且早期测试效果不错,有望在后续的内核版本中重新启用该策略。
【sched_ext】
改进了 sched_ext 的可观测性,以便简化调试工作。当自定义的 sched_ext 调度器出现运行时错误,内核会将其停用并恢复为默认调度器。为了帮助诊断这些错误,内核会转储每个 CPU 的状态。不过,特别是在高核心数系统中,由于内核空间和用户空间之间的缓冲区大小限制,这些转储信息可能会被截断。通过优先转储触发错误的 CPU 来缓解这个问题,同时将其 CPU ID 直接提供给 BPF 调度器和用户空间工具。
【树莓派 GPU 及其他设备的电源管理】
在本次发布中,为树莓派 4 和 5 的 GPU 提供了运行时电源管理支持。此前,V3D 驱动采用了一种非常简单的电源模型,意味着即使 GPU 处于空闲状态,也会消耗电力。借助运行时电源管理,GPU 仅在实际处理工作时才会通电,并且在空闲时可以禁用其时钟。这降低了树莓派在不使用 GPU 时的功耗。还撰写了一篇博客文章,详细介绍了这一功能,并提供了一些功耗测量数据。
还修复了树莓派 3 GPU 驱动中存在多年的两个长期问题,这些问题会导致随机的 GPU 挂起和系统崩溃。问题根源在于内核处理图块内存的方式存在缺陷。修复方案确保每个图形任务只写入自己的内存区域,并且在重新使用内存之前会正确清除,从而防止陈旧或损坏的数据进入 GPU。通过这些修复,RetroPie 用户在浏览菜单时应该不会再遇到崩溃问题。
最后,修复了树莓派 4 和 5 的 GPU 重置问题,使重置过程更加可靠和一致。
【Futex 测试与文档】
持续致力于改进和维护 `futex()` 系统调用,这是一个被各类工作负载用于创建同步机制的重要系统调用。在这个开发周期中,协助设计并解决了一个存在 14 年之久的漏洞,该漏洞会在某些边缘情况下影响健壮列表机制,导致数据损坏。
【常规漏洞修复】
修复了 `ueagle - atm` 驱动中存在的一个长期问题。该问题会在设备探测和断开连接期间,通过 `request_firmware` API 在 `kernfs` 创建和删除操作之间引发竞态条件,多年来在 syzbot 上产生了大量的漏洞报告。
还改进了 x86 启动期间使用的 `memcmp()` 内联汇编实现的正确性,防止因编译器优化和指令重排序而导致的潜在细微漏洞。
【迈向全面支持 HDMI 2.1】
本次版本中发布的部分 HDMI 2.1 固定速率链路(FRL)支持,可追溯到 Igalia 的 Rodrigo Siqueira 在 AMD 工作期间的成果。这项工作实现了最初的支持,使 amdgpu 驱动能够与 HDMI 2.1 显示器进行通信。该实现多年来一直独立于主代码之外,直到最近才被整合到源代码中,部分代码基本保持原貌,而其他部分则在整合过程中进行了重新编写。Igalia 在各种 DRM/KMS 驱动方面拥有丰富经验,这种对 HDMI 2.1 功能的实践经验,为供应商在其自身驱动中启用前沿功能提供了必要的知识支持。
【贡献代码(82 项)】
【André Almeida】
* 文档:futex:添加关于健壮列表竞态条件的注释
* 自测:futex:添加健壮释放操作的测试
【Changwoo Min】
* sched_ext:从 scx_dump_state() 中提取 scx_dump_cpu()
* sched_ext:优先转储退出 CPU
* sched_ext:向 BPF 和用户空间暴露 exit_cpu
【Helen Koike】
* fs/ntfs3:重命名失败时调用 _ntfs_bad_inode()
* tipc:修复 __tipc_nl_compat_dumpit 中的无限循环问题
【John Harrison】
* drm/connector/hdmi:修复越界内存读取问题
【Jose Maria Casanova Crespo】
* drm/vc4:在 BPOS 中提供溢出槽大小,而非整个 bin BO 大小
【Mauricio Faria de Oliveira】
* usb: atm: ueagle - atm:使用 dev_dbg() 输出 “设备已找到” 消息
* usb: atm: ueagle - atm:移除函数入口/退出调试消息
* usb: atm: ueagle - atm:在 .disconnect() 中等待预固件加载完成
* x86/boot:在 memcmp() 中添加 volatile、clobbers 和零长度测试
【Maíra Canal】
* drm/vc4:使用 devm_request_irq() 进行自动清理
* drm/vc4:清理 UAPI 头文件包含情况
* drm/v3d:使用 devm_reset_control_get_optional_exclusive()
* drm/v3d:在启用时钟之前分配所有资源
* drm/v3d:引入运行时电源管理
* drm/connector:使 drm_connector_attach_hdr_output_metadata_property() 返回 void
* drm/v3d:在运行时恢复期间刷新 MMU TLB 和缓存
* drm/v3d:在运行时挂起之前清理缓存
* drm/v3d:在间接 CSD 设置中拒绝无效的间接 BO 句柄
* drm/v3d:通过 V3D 7.x 上的集线器寄存器访问 GMP
* drm/v3d:在挂起时禁用时钟之前使 AXI 事务空闲
* drm/vc4:在每个 BIN 作业之前将图块状态数据数组清零
* drm/v3d:序列化调度器超时处理程序
【Thadeu Lima de Souza Cascardo】
* drm/amdgpu:提前初始化 irq.lock 自旋锁
【Tvrtko Ursulin】
dma - fence:修复潜在的跟踪点空指针解引用问题
drm/sched:禁止在没有调度器的情况下初始化实体
drm/sched:整合实体运行队列管理
drm/sched:将运行队列相关代码移至单独的文件中
drm/sched:添加一些调度质量单元测试
drm/sched:添加更多调度质量单元测试
drm/sched:通过 FIFO 实现 RR 调度
drm/sched:一次性释放所有已完成的作业
drm/sched:统计实体 GPU 时间
drm/sched:从树中移除空闲实体
drm/sched:添加公平调度策略
drm/sched:略微优先处理交互式客户端
drm/sched:将默认策略切换为公平调度
drm/sched:移除 FIFO 和 RR 调度,简化为单一运行队列
drm/sched:将运行队列单例嵌入调度器中
accel/amdxdna:移除 drm_sched_init_args->num_rqs 的使用
accel/rocket:移除 drm_sched_init_args->num_rqs 的使用
accel/ethosu:移除 drm_sched_init_args->num_rqs 的使用
drm/amdgpu:移除 drm_sched_init_args->num_rqs 的使用
drm/etnaviv:移除 drm_sched_init_args->num_rqs 的使用
drm/imagination:移除 drm_sched_init_args->num_rqs 的使用
drm/lima:移除 drm_sched_init_args->num_rqs 的使用
drm/msm:移除 drm_sched_init_args->num_rqs 的使用
drm/nouveau:移除 drm_sched_init_args->num_rqs 的使用
drm/panfrost:移除 drm_sched_init_args->num_rqs 的使用
drm/panthor:移除 drm_sched_init_args->num_rqs 的使用
drm/sched:移除 drm_sched_init_args->num_rqs 的使用
drm/v3d:移除 drm_sched_init_args->num_rqs 的使用
drm/xe:移除 drm_sched_init_args->num_rqs 的使用
drm/sched:移除 drm_sched_init_args->num_rqs
drm/xe/xelp:修复 Wa_18022495364
drm/xe:使用 fb 缓存的最小对齐方式
drm/xe:在 drm_sched_init 时及时分配队列名称
drm/sched:修复 kunit 测试中的 clang 编译警告
amd/amdkfd:修复分析器锁的初始化顺序
drm/amdgpu:修复上下文 pstate 覆盖处理问题
撤销 “drm/sched:移除 drm_sched_init_args->num_rqs”
撤销 “drm/xe:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/v3d:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/sched:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/panthor:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/panfrost:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/nouveau:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/msm:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/lima:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/imagination:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/etnaviv:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “drm/amdgpu:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “accel/ethosu:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “accel/rocket:移除 drm_sched_init_args->num_rqs 的使用”
撤销 “accel/amdxdna:移除 drm_sched_init_args->num_rqs 的使用”



被折叠的 条评论
为什么被折叠?



