Linux 内核开发人员争论基于优先级的 Shutdown 支持


Pengutronix 嵌入式 Linux 咨询公司的 Oleksij Rempel 上周五发布了一系列补丁,提出了针对驱动程序/硬件的基于优先级的 shutdown 支持。

主要目的是在主线 Linux 内核提供优先关闭特定设备的功能,“这在 power loss 等情况下尤为重要,如果处理不当,可能会造成硬件损坏”。

其内容重点在于,在意外/即时 shutdown 事件(例如电源/电压下降或完全断电)期间正确关闭关键设备。作为补丁系列的一部分,Oleksij Rempel 还提出在 shutdown 阶段将 (e)MMC 存储设备设置为更高优先级,以帮助确保数据完整性/损坏。

Oleksij Rempel 的这一想法引发了 Linux 内核开发人员间的激烈讨论,并形成了两极分化的看法。Greg Kroah-Hartman 首先对这种基于优先级的 shutdown 支持提出了质疑。他指出,这一做法会导致驱动程序和子系统之间出现优先级的争夺:

每个驱动程序和子系统都坚持认为自己是最重要的!

总之,从长远来看,这样做会带来很多问题,这些硬件有什么特别之处能使得其不可以按照现有顺序 shutdown,而必须比其他人"优先"?这样做究竟是为了防止什么,哪些设备需要这样做?

最重要的是,在过去的 20 多年中,有什么变化导致突然需要这种新功能,其他操作系统是如何处理的?

观点双方就主线 Linux 内核是否应该具有这样的功能,以有效解决有问题的硬件设计做出了很多讨论。最后事实证明,一些用于汽车行业的外层 Linux 内核版本已经提供了这种优先 shutdown 支持。Oleksij Rempel 将这一需求总结为:

它能防止硬件损坏。在典型的汽车欠压测试中,通常可以在 Y 个欠压周期内重现 X 个损坏的 eMMC 或 NAND(我现在没有确切的数字)。即使在人工测试中出现的数量不是很多(有时一个月的测试中就会出现一个损坏的设备),但现场的回报率也很高,足以让我们关心这个问题的软件解决方案。

同样的问题不仅出现在汽车设备上,也出现在工业或农业设备上。换句话说,这个问题非常重要,必须要有某种解决方案。

对此,Greg 则用反问的语气调侃称,“这么说的话,硬件试图依靠软件来防止同一硬件遭到破坏?硬件设计师肯定没那么疯狂吧?”

科技网站 Phoronix 评论称,从较高层次上来看,如果设备/驱动程序有充分的理由希望优先为设备 shutdown 做好准备,例如可以防止数据丢失或获得其他重大优势,那么这种基于优先级的 shutdown 支持似乎没有问题。但在实践中,如果有多个驱动程序声称在 shutdown 过程中拥有"优先权",并且在确保设计可靠且能妥善解决实际问题方面存在其他障碍,那么具体的实现就会存在一些困难。

目前为止,大家对这种方法的意见还很不统一。现阶段能否设计出一种既能为主线所接受,又能满足汽车和更广泛的嵌入式/工业领域需求的适当解决方案,还有待观察。


相關推薦

2024-09-26

话中,Linus 对Rust 的安全性予以了肯定。 将Rust引入Linux内核已经成为一个热门话题。2022年,开发者们就这门语言进行了争论,一些人将Rust的内存安全特性称为对多年来内核工作的“侮辱”。9月初,Rust for Linux项目的一位维护

2022-03-31

务器可能需要超过一分钟的时间才能让 Linux 内核执行其 shutdown 任务,而谷歌的这项改进工作也可能使其他用户受益。 我们的一些机器配置了许多 NVMe 设备,并且已针对严格的 shutdown 时间要求进行了验证。每个 NVMe 设备插入

2022-11-23

速器子系统(Accelerator Subsystem)一直处于争论状态,部分内核开发者应该针对该计算加速器开发新的子系统、部分开发者则认为它应当是 DRM 的子系统或其他子系统的一部分。 而在今年的 LPC 大会中,上游开发人员终于对如何处

2023-08-11

cachefs 是一个写时复制(CoW)的文件系统,其源自于 Linux 内核的块缓存 Bcache。几个月前,Bcachefs 的补丁集已正式递交审查,有望被纳入内核。 开发者希望能提供类似 XFS/EXT4 的性能,以及类似 Btrfs 和 ZFS 的特性。其主要开发者

2022-02-22

年 3 月,FreeBSD 13.0 版本最新发布。在一场采访中,FreeBSD 内核开发者 John Baldwin 如是说。 他说得没错。许可证是 BSD 一族与 GNU/Linux 最显著的不同,它彰显了 FreeBSD 所继承的、与 RMS 提倡的 “Free” 完全不同的 “Libre

2024-07-11

Go (Golang) 是 Google 开发的一种编译型、并发型,并具有垃圾回收功能的编程语言,于 2009 年 11 月正式宣布推出成为开源项目,2012 年发布 1.0 版本。 如今,谷歌仍在继续投资该语言,最新的稳定版本是 1.22.5。在最新的 TIOBE 7 月

2021-11-10

an 毕竟是个志愿者组织,社区的事情会被成员放在较后的优先级上,效率自然低下。况且,Debian 组织庞大,事情也不像只有十余名维护者的开源社区一样好解决。 但是,同样的问题引来了更多的人离开。2019年3月,一位名为 M

2023-08-18

e-desktop thumbnailer 沙箱补丁或任何与 XDG 规范相关的工作。内核工作、审查和维护,包括最近有关 SteelSeries headset 和 Logitech 设备内核驱动程序的工作、Flatpak Portal 支持的 USB revoke 或 core USB 的工作都将暂停,直至另行通知。 Noc

2023-02-16

ut-of-tree PREEMPT_RT 补丁,通过使用比 CFS 调度程序具有更高优先级的实时调度类,使其比主线 Linux 内核更具抢占性。Canonical 表示,实时 Ubuntu 内核旨在满足电信网络的 5G 转型需求,但它也是从工业 PC 到 HMI(人机界面)等众多技

2023-09-22

0 岁就要被干掉? 在日前举行的欧洲开源峰会上,Linux 内核开发人员兼《Linux Weekly News》执行主编 Jonathan Corbet 介绍了 Linux 内核的最新动态以及未来的发展方向。其中一项即将发生的重大变化是:Linux 内核的长期支持 (LTS) 时间

2022-09-24

[boot] systemd=true 然后通过在 PowerShell 中运行 wsl --shutdown 来重启实例,并重新启动 Ubuntu

2024-06-01

阅用户。Canonical 工程师介绍称: 通过确保首先执行高优先级进程并具有确定性的响应时间,与主线 Linux 相比,实时 Ubuntu 24.04 LTS 减少了延迟,增强了系统有效处理时间敏感操作的能力。 实时内核版 Ubuntu 24.04 LTS 集成了 AMD6

2022-05-18

flix 等公司挖走了一些开源资深人士,旨在借此清理 Linux 内核并重新建立与开源社区的对话。英特尔首席技术官 Greg Lavender 在日前的新闻发布会上表示,“我正在吸引一些业内最优秀的人才。他们离开大公司,来到英特尔,因为

2022-10-16

LLVM Clang 被越来越多地开发人员和组织用于构建主线 Linux 内核的同时,大家似乎忘记了,作为对长期以来占主导地位的 GCC 编译器目标的补充支持,英特尔的 ICC 编译器也能够用于构建 Linux 内核(尽管没有被广泛使用)。鉴于此