ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Linux 7.2 发布:开发周期繁忙成果多,Igalia 贡献亮点足!

Linux 7.2 发布:开发周期繁忙成果多,Igalia 贡献亮点足! 【导航菜单】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_rqsdrm/xe/xelp修复 Wa_18022495364drm/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 的使用”
返回列表