LWN:5.18合并窗口第一部分!

LWN:实时Linux和嵌入式Linux的当前状态! 关注了就能看到更多这么棒的文章哦~The state of realtime and embedded LinuxBy Jonathan CorbetApril 25, 2024OSSNAChatGPT translationhttps://lwn.net/Articles/970555/Linux 以存在于众多类型的系统中而闻名。其中服务器和数据中心确实获得了大量的关注,而今年又总是被称为 Li... 阅读详情

关注了就能看到更多这么棒的文章哦~

5.18 Merge window, part 1

By Jonathan Corbet
March 25, 2022
DeepL assisted translation
https://lwn.net/Articles/888736/

截至目前,在 5.18 开发周期中已有 4127 个 non-merging changeset 进入了 mainline。这个速度比起之前的合并窗口来说相对较慢,但其中还是有了很多的改动。请继续阅读下去,了解 5.18 合并窗口的前半部分中最重要改动的摘要。

Architecture-specific

  • 32 位 Arm 系统已支持将中断调用栈(interrupt stack)以及虚拟映射的内核栈(virtually-mapped kernel stack)分隔开来。

  • 删除了对没有内存管理单元(MMU)的旧版 Arm 系统(ARMv4 和 ARMv5)的支持。不过,对同样没有 MMU 的 ARMv7-M 系统仍然保持支持。

  • arm64 架构支持新增 "QARMA3" 指针验证算法(pointer-authentication algorithm)。Arm 的 QARMA 的这个变种显然更加快速,同时仍有足够的安全性。

  • Arm64 系统可以使用 GCC 12 版本编译器来支持影子堆栈(shadow-stack)。

  • PA-RISC 架构获得了最基本的 vDSO 支持,这反过来又使系统可以第一次支持运行时使用具有不可执行权限的堆栈(non-executable stack)运行。这个 patch 的最初版本是在 2006 年发布的,似乎有些功能总是需要比其他功能要花费更长时间才能进入 mainline。

  • 加入了英特尔 "hardware feedback interface" 的支持。这个机制允许硬件来告知内核当前系统中每个 CPU 的当前性能和能效比。这些能力可能会随着时间的推移而改变,例如因为发热过高而进行的限制。文档 patch 里有更多一些的信息。

  • 移除了 nds32 架构的支持。根据合并时的更新日志所说:

    硬件仍在使用,代码也很合理,但针对 mainline 的移植不再积极,因为所有的剩下用户都应该是在运行供应商的内核(vendor kernel),而这些内核应该永远不会再更新到后续版本上了。

Core kernel

  • io_uring 子系统已经有了一些改进。新增 IORING_SETUP_SUBMIT_ALL 选项会提交一整个批次的 request,哪怕中途遇到错误也一样。ring 本身对应文件描述符跟 ring 一起注册,为线程型应用程序(threaded application)提升了性能。细节请看相关的 changelog。新增的 IORING_OP_MSG_RING 操作允许一个 ring 向另一个 ring 发出 signal。此外,现在可以直接从 ring 中对 socket 进行 NAPI busy poll 轮询了。

  • 针对 alpha 和 m68k 架构(最后两个仍在使用 a.out 的架构),不再默认编译生成 a.out 可执行格式。a.out 代码实际上还没有被删除,但这可能很快会进行。

  • 合并了对 restartable-sequence API 的一些调整,以便在 GNU C Library 中提供支持。

  • DAMON operation schemes(DAMOS)机制为用户空间提供了对内存管理相关操作(尤其是 page reclaim)的更多控制。

  • tracing 系统现在支持 "user events",这基本上就是 user-space 应用程序中的 dynamic tracepoint。该功能在合并后的更新日志中的介绍是:

    用户空间可以向内核注册一个事件(event),描述该 event 的格式。然后,它将在一个 page mapping 中收到一个 byte 用来对照检查。然后,有特权的 task 可以跟对待其他 event 一样来启用该事件,这将把映射里的字节改为 "true",告诉用户空间的应用程序开始将该事件写入 tracing buffer 中。

    更多信息请参见添加文档的 commit 以及一个示例程序。

Filesystems and block I/O

  • 现在可以在 sysfs 中查看 block request queue 里的 inline-encryption 能力,详情参见 changelog。

  • 对于加密文件来说,通常无法进行 direct I/O,因为无论如何,数据必须通过内核 buffer 来进行加密或解密。但是,如果硬件做了加密工作,情况就不同了。在 5.18 中,如果使用 inline encryption,那么用 fscrypt 加密的文件可以用 direct I/O 来访问。文档 patch 中包含了更多的信息。

  • F2FS 文件系统已经支持了 ID-mapped mounts。

  • 如果 NFS 被启用了,那么对 NFSv3 的支持将始终内置在 NFS server 中。这样做的目的是使 NFSv3 成为 NFS 的基本、"始终支持" 的版本,从而为最终取消 NFSv2 支持来做好准备。

  • Btrfs 新增两个 ioctl() 操作(BTRFS_IOC_ENCODED_READ 和 BTRFS_IOC_ENCODED_WRITE),允许直接对于一个文件的 extents 进行读取和写入。这些命令的主要用途是支持更加新的、更加有效率的发送和接收操作。

Hardware support

  • 硬件监控 华硕 ACPI 嵌入式控制器、Vicor PLI1209BC 数字电源监督器、Aquacomputer Farbwerk 360 RGB 控制器,以及德州仪器 TMP464 和 TMP468 温度传感器。

  • 媒体 Microchip CSI2 demux 控制器,Hynix Hi-847 传感器,OmniVision OV08D10 和 OG01A1B 传感器,以及 Intersil ISL7998x 视频解码器。

  • 杂项 高通公司 MSM 电源管理器控制器、Xilinx ZynqMP SHA3 加速器、TI TPS6286x 电源稳压器、Richtek RT5190A 电源管理 IC、Sunplus SP7021 SPI 控制器、LiteX MMC 主机控制器和 Tesla 全自驱动时钟控制器。

  • 声音 德州仪器 TAS5805M 扬声器放大器,AMD PCI 音频协处理器,以及 Awinic AW8738 音频放大器。

Miscellaneous

  • 新增一些比较重要的文档,包括一些研究人员研究内核社区的指南,readahead 代码的概述,如何报告出 regression 问题,以及开发人员应该如何处理 regression。

Security-related

  • 新增一个 kernel keyring 名为 machine;它包含由 shim bootloader 接口所实现的机器所有者密钥(machine-owner keys)。machine keyring 中的密钥在内核中是可以被信任的,用来用来对初始启动过程后之后要使用到的部件(如 module 或 integrity 数据)进行签署(sign)。

  • 移除了 asymmetric TPM-backed private keys 的支持。这个功能最初是在 3.7 版本添加的,依赖于一个已经废弃了的(obsolete) TPM 版本,并且有一些自己的安全问题;希望没有人在使用它。

  • 随机数生成器也做了大量工作。/dev/random 和/dev/urandom 之间的差异已经被移除(尽管在报告了一个 regression 问题之后,不得不 revert 一些 urandom 的改动)。在 virtual machine 进行 fork 时,新增了一个机制来避免 random-stream 被复现。现在内部开始使用 BLAKE2s 算法。还有更多改动,细节请参见合并后的 changelog 以及 https://www.zx2c4.com/projects/linux-rng-5.17-5.18/ 。

  • 内核现在为 size_t 值提供了 saturating arithmetic helpers;可以用来加强代码以防止整数溢出的错误。更多信息请参见相关提交。

Internal kernel changes

  • 第一部分来自 fast kernel-headers 代码树里的工作已经合入,主要是对 scheduler header files 进行了大量的修改调整。

  • 去年发现的未被使用的 block-layer congestion-tracking 代码已经被删除。

  • 内存管理代码进行了改进,添加了 remote per-CPU page list draining。

  • 合并了更多 folio patch,这组补丁将内部的内存管理函数(包括 get_user_pages() 的各个变种)转换为使用 folio,并在 readahead 代码中实现了创建 large folio。第二组是将一些 address_space_operations 转换为 folio。

  • set_fs() 基础功能终于被完全移除。

快速检查可以看到 linux-next 目前包含了将近 9000 个尚未被拉入 mainline 的 commit,所以看起来 5.18 内核将会有更多的东西进来。合并窗口预计将持续到 4 月 3 日;在那之后不久,我们将对这个版本中剩余部分工作进行总结。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

b4d093217195d7810e39abfc16a1ffe2.png

LWN: linux-next 的最佳实践 Torvalds 说,这种习惯也会在 linux-next 中引起麻烦,但 Mark Brown 认为,只有在其他人在已变基的仓库基础上进行构建时,变基才会真正成为问题。Jiri Kosina 询问,既然这些仓库应该已经被拉入 linux-next 并在那里进行了构建测试,那么 Torvalds 在提取仓库时遇到的构建问题是如何发生的。当维护者在将提交发送到主线之前对其进行拣选 (cherry-pick) 时,也会产生额外的问题,这使得追踪这些提交在 linux-next 中出现时的状态变得更加困难。 阅读详情

相关推荐

LWNLinux图形栈简介,第一部分

关注了就能看到更多这么棒的文章哦~The Linux graphics stack in a nutshell, part 1December 19, 2023This article was contributed by Thomas ZimmermannChatGPT translationhttps://lwn.net/Articles/955376/Linux 图形开发者经常提到“现代”L...

Linux News搬运工 915

LWN:改进page-fault的可扩展性!

关注了就能看到更多这么棒的文章哦~Improving page-fault scalabilityBy Jonathan CorbetMay 29, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/932298/某些话题总是每年都要回到开发会议上来讨论一次,通常是因为开发人员仍在努力针对某个特定的问题寻找一个可行的解决...

Linux News搬运工 1159

LWNLinux图形栈简介,第二部分!

关注了就能看到更多这么棒的文章哦~The Linux graphics stack in a nutshell, part 2December 28, 2023This article was contributed by Thomas ZimmermannChatGPT translationhttps://lwn.net/Articles/955708/在屏幕上显示应用程序的图形化输出内容需要...

Linux News搬运工 784

LWN:6.11 合并窗口一部分

关注了就能看到更多这么棒的文章哦~The first half of the 6.11 merge windowBy Jonathan CorbetJuly 18, 2024Gemini-1.5-flash translationhttps://lwn.net/Articles/982034/6.11 内核发布的合并窗口于 7 月 14 日打开;截至撰写本文时,自那时起已有 4,072 个非合并...

Linux News搬运工 2648

LWNLinux 5.11 合并窗口一部分

关注了就能看到更多这么棒的文章哦~5.11 Merge window, part 1By Jonathan CorbetDecember 18, 2020DeepL assisted t...

Linux News搬运工 734

LWN: 6.1 合并窗口一部分

关注了就能看到更多这么棒的文章哦~The first half of the 6.1 merge windowBy Jonathan CorbetOctober 7, 2022DeepL assisted translationhttps://lwn.net/Articles/910312/6.1 合并窗口正在顺利进行中:自从窗口打开以来,已经有 5,752 个 non-merge changes...

Linux News搬运工 364

LWN5.18 合并窗口,第二部分!

关注了就能看到更多这么棒的文章哦~5.18 Merge window, part 2By Jonathan CorbetApril 4, 2022DeepL assisted translationhttps://lwn.net/Articles/889266/Linus Torvalds 在 4 月 3 日发布了 5.18-rc1 内核预编译版本,在此之前,他已经将 1...

Linux News搬运工 621

LWNLinux 5.10合并窗口,第一部分

关注了就能看到更多这么棒的文章哦~5.10 Merge window, part 1By Jonathan CorbetOctober 16, 2020https://lwn.net/A...

Linux News搬运工 1086

LWN:6.8 合并窗口的剩余内容!

关注了就能看到更多这么棒的文章哦~The rest of the 6.8 merge windowBy Jonathan CorbetJanuary 22, 2024Gemini translationhttps://lwn.net/Articles/958178/尽管 Linus Torvalds 在一周的大部分时间里都处于停电状态,但他还是成功地发布了 6.8-rc1 并按时关闭 6.8 合并...

Linux News搬运工 286

LWN:user event,不过还未完工!

关注了就能看到更多这么棒的文章哦~User events — but not quite yetBy Jonathan CorbetApril 18, 2022DeepL assisted translationhttps://lwn.net/Articles/889607/ftrace 和 perf 子系统让开发者可以看到内核的工作细节,通过利用现有的 tracepoi...

Linux News搬运工 244

LWN: trusted_for() 没能被合并

关注了就能看到更多这么棒的文章哦~trusted_for() bounces off the merge windowBy Jake EdgeApril 12, 2022DeepL assisted translationhttps://lwn.net/Articles/890957/在我们上一次关注 trusted_for() 系统调用的提案时,看起来还是很快就能合入 ...

Linux News搬运工 159

Linux 内核 5.18 发布:新增了什么功能呢?

Linux 内核 5.18 包括一个英特尔驱动程序,该驱动程序可能允许芯片制造商在用户支付许可证后启用新的芯片功能。Linux的创建者Linux Torvalds在通过开发的最后一周后宣布了稳定的Linux内核版本5.8版本,“没有意外的令人讨厌的惊喜”。像往常一样,Torvalds在周日晚上宣布了Linux内核的最新稳定版本。在稳定的5.17版本发布大约两个月后,它准时到达,从而打开了Linux 5.19的合并窗口。Torvalds对Linux 5.18没有什么令人兴奋的说法,但仍然鼓励开发人员运行它。“

weixin_44469648的博客 1654

LWN: 如何像kernel专家一样rebase & merge?

点击上方蓝色字关注我们~Rebasing and merging in kernel repositoriesByJonathan CorbetJune 18, 201...

Linux News搬运工 626

LWN:对pull-request里面混乱的diffstats进行加工!

关注了就能看到更多这么棒的文章哦~Handling messy pull-request diffstatsBy Jonathan CorbetApril 22, 2022DeepL assisted translationhttps://lwn.net/Articles/889760/[编者注:以下内容是针对 linux-kernel 邮件列表中经常出现的问题而写出来的...

Linux News搬运工 255

LWN:用户空间trace event合入一年之后……

关注了就能看到更多这么棒的文章哦~User trace events, one year laterBy Jonathan CorbetApril 3, 2023DeepL assisted translationhttps://lwn.net/Articles/927595/内核有一套完善的机制来控制对内核空间各种 event 的追踪(tracing)。开发者经常希望能够使用同样的接口来对用户空...

Linux News搬运工 1177

LWN: stable kernel 争论的核心问题!

关注了就能看到更多这么棒的文章哦~The core of the -stable debateBy Jonathan CorbetJuly 22, 2021DeepL assisted t...

Linux News搬运工 451

LWN:SA_IMMUTABLE以及修改signal处理行为有多危险!

关注了就能看到更多这么棒的文章哦~SA_IMMUTABLE and the hazards of messing with signalsBy Jonathan CorbetDecembe...

Linux News搬运工 246

LWN: splice() 以及 set_fs() 的残留印记!

关注了就能看到更多这么棒的文章哦~splice() and the ghost of set_fs()By Jonathan CorbetMay 26, 2022DeepL assisted translationhttps://lwn.net/Articles/896267/内核开发有一个通常规则,就是不允许导致用户空间出现 regression。那些会破坏以前能正常工...

Linux News搬运工 603
上一篇: LWN:删除 a.out 支持!
下一篇: LWN: 20年后能否解决 negative dentry 问题!
LinuxNews搬运工
博客等级 码龄7年 419粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值