LWN:5.18 合并窗口,第二部分!

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

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

5.18 Merge window, part 2

By Jonathan Corbet
April 4, 2022
DeepL assisted translation
https://lwn.net/Articles/889266/

Linus Torvalds 在 4 月 3 日发布了 5.18-rc1 内核预编译版本,在此之前,他已经将 13207 个 non-merge changeset 拉到了 mainline 仓库。因此,这个合并窗口不仅纷争不断(有大量的 regression 以及被拒绝的 pull request),同时也是相对繁忙的。在写完第一篇 5.18 合并窗口的总结后,有超过 9000 个 changeset 被合入。现在是时候来补充记录这个开发周期中的剩余改动了。

在 5.18 合并窗口的后半部分,最有趣的变化包括:

Architecture-specific

  • live patching 也支持 32 位 PowerPC 系统了。

  • RISCV 架构已经支持了 "Sv57" 页表格。这是一种支持 57 位虚拟地址的五级页表。

  • RISCV 的 perf 实现代码已经被移除,取而代之的是基于 SBI PMU 和 Sscofpmf 扩展的另一个 perf 实现。这就可以支持大多数 perf 功能了。

  • RISCV 的 SBI CPU-idle extension 在 5.18 中开始支持。

  • RISCV 还支持了 restartable sequence。

  • Intel software-defined silicon driver,允许英特尔控制这个处理器中哪些功能是可以使用的,已经被合入 mainline 了。

  • 对 AMD 的 "host system management port" 的支持,这是 "为操作系统级软件提供通过一组 mailbox 寄存器来访问系统管理功能的接口",已经被合入 mainline。文档提交中可以找到少量的额外信息。

Core kernel

  • BPF type format(BTF)机制现在可以对指向用户空间内存的变量进行标注(annotate)了。这个功能的好处之一就是为 verifier 提供了一种更好的方法来检测和检查用户空间的内存访问。更多信息请参见 merge changelog。

  • BPF program-packing memory allocator 已经被合并;这使得那些存在大量加载好的 BPF program 程序的系统中能更有效地使用内存。

  • MADV_DONTNEED madvise() 命令现在可以支持 hugetlb page。

  • 新增一个 madvise() 操作,MADV_DONTNEED_LOCKED,它将(像 MADV_DONTNEED 一样)触发对指定 page 的回收。但与 MADV_DONTNEED 不同的是,这个操作甚至适用于已经被 lock 在内存中的 page;这些 page 被强制取出,但它们的 "locked" 状态并没有改变。因此,如果受影响的 page 后续由于内存缺页而回来,那么它们将保持被 lock 的状态。相关的 changelog 解释了这个功能背后的原因。

Filesystems and block I/O

  • Device-mapper I/O 统计功能已被大幅重构了,这可以使 dm-crypt 等场景的统计更加准确。

  • Reiserfs 文件系统已被弃用(deprecated),有望在 2025 年被移除。

  • 对 write stream 的支持已经从 block 子系统中移除。目前没有任何设备支持该功能,也看不到有什么未来需求。

  • 现在支持 NVMe 设备上的 64-Bit integrity checksum 完整性校验。

  • exfat 文件系统新增挂载选项(keep_last_dots),这个选项会让它不去除文件名的尾部句号;这使得该文件系统与 Windows 不兼容,后者会去除尾部句号。

Hardware support

  • 时钟。Microchip PolarFire 时钟控制器、瑞萨 RZ/G2L 时钟控制器、瑞萨 9 系列 PCIe 时钟发生器、恩智浦 i.MX93 时钟控制器、StarFive JH7100 音频时钟、苹果 M1 数字控制振荡器、高通 QCM2290、SM6125 和 SM6350 显示时钟控制器、高通 SM6350 图形时钟控制器和全志 H616/R329 RTC 时钟控制器。

  • Graphics。ChromeOS 隐私屏幕控制器、ITE IT6505 DisplayPort 桥接器、所罗门 SSD130x OLED 显示器和 MIPI DBI 兼容面板。

  • Industrial I/O。Semtech SX9324 和 SX9360 接近传感器、Analog Devices ADXL367 三轴加速计、Analog Devices ADMV1014 微波降频器、Analog Devices ADA4250 instrumentation amplifiers、Analog Devices ADMV4420 K-band 降频器和 Analog Devices LTC2688 数模转换器。

  • Miscellaneous。SiGma Micro-based 键盘,Airoha EN7523 GPIO 控制器,UPI uG3105 电池监视器,Injoinic IP5xxx power bank IC,Macronix 外部硬件 ECC 引擎,Silergy SY7636A 温度传感器,Maxim Semiconductor MAX77714 电源管理 IC。AMD PSP I2C semaphores、联发科 ADSP mailbox controllers、ASPEED PECI 控制器、Layerscape security fuse processors、Sunplus 片上控制器、Sunplus UARTs、Rockchip NANENG COMBO PHYs、联发科键盘、Imagis IST30xxC 触摸屏。

  • Networking。Realtek RTL8367S 以太网交换机、Davicom dm9051 SPI 以太网控制器、Fungible 以太网适配器、联发科 MT7986 无线 MAC、联发科 MT7921U 802.11ax 2x2:2SS 无线适配器、Lynx 28G SerDes PHY 和 I2C 连接的管理控制器传输协议(MCTP)设备,实施的是 DSP0237 规范。

  • Pin control and GPIO:Broadcom BCM4908 引脚控制器、Meson s4 引脚控制器、Sunplus SP7021 PinMux 和 GPIO 控制器、Renesas R8A779F0 引脚功能控制器、Mediatek MT8186 引脚控制器、NXP i.MX93 引脚控制器、Nuvoton WPCM450 引脚和 GPIO 控制器,以及 Qualcomm SC8280xp 引脚控制器。

  • USB。Richtek RT1719 Sink Only Type-C USB 控制器和高通公司嵌入式 USB 调试器。

Miscellaneous

  • 像往常一样,用户空间的 perf 工具有一长串的改进;详见相关 merge commit 中的总结。

Networking

  • bridge 子系统现在支持多生成树(multiple spanning trees);更多信息请参见 merge commit。

  • 继续致力于在网络代码中添加监控点来揭示丢包原因。

  • 加载到 network control group 的 BPF program 现在可以使用一些新增 helper 函数来明确设置系统调用的返回值。这有助于了解某个特定系统调用被拒绝的原因。

  • 现在支持从以 BPF_PROG_RUN 运行的 BPF program 中传输数据包。欲了解更多信息,请参见相关 merge commit、changelog 以及文档 patch。

  • 在 express data path (XDP) 机制中加入了对 fragment 的支持, 允许处理 jumbo frame (巨帧)等。更多信息请参见相关 commit。

  • network namespace 拆分(teardown)工作大大加快了,这对于一些有大量网络流量的大型系统来说非常重要。

Security-related

  • 严格的 memcpy() 边界检查 patch 已经被合并了。这项工作应该有助于在一系列内存安全问题进入 production kernel 之前就提前 fix。

  • 内核在编译时已经启用了 -Warray-bounds 和 -Wzero-length-bounds warning。这是一个长期努力的成果,旨在消除内核代码中的零长度的数组以及一些相关技巧。

  • 为 x86 架构增加了 indirect branch tracking 的 control-flow integrity。这个功能可以防止 indirect branch 被重定向到那些不应该跳转到的位置。具体来说,所有的 indirect branch 都必须落在 ENDBR 指令位置。

Virtualization and containers

  • virtio-crypto 设备已经支持了 RSA 加密。似乎没有相关文档,但 commit 中的内容对某些人来说可能就够了

Internal kernel changes

  • 正如 https://lwn.net/Articles/885941/ 所述,内核现在编译时改为符合 C11 语言标准,而不是 C89 标准了。

  • 新增的 "fprobe" 机制允许在不需要 ftrace 的全部功能时进行快速的函数调用追踪(quick function-call tracing);更多信息请参见相关文档 commit。

  • build 系统现在支持两个新的环境变量:USERCFLAGS 和 USERLDFLAGS;它们可以分别用来向编译器和链接器传递额外参数。

  • 网络文件系统的内部支持代码有了很大的改动;请看相关 merge changelog 来了解更多。

  • 早已过时的 PCI DMA API 已经被移除,驱动程序应该使用常规的 DMA API 来代替。

5.18 内核现在进入了稳定阶段,在这个阶段,所有这些新功能中所存在的 bug 将被发现并 fix。假设正常的时间表保持不变的话,那么最终 5.18 版本可望在 5 月 22 日或 29 日发布。

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

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

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

d91c48bd0df07ddb3615a9912f0fe440.png

Intel CET缓解机制实战解读 基于硬件设计的ROP缓解技术 阅读详情

相关推荐

riscv sscofpmf(Count Overflow and Mode-based Filtering)扩展介绍

Sscofpmf扩展填补了RISC-V性能监控的关键缺口,通过标准化溢出中断、模式过滤和S-mode访问机制,显著提升了性能分析的效率与灵活性,为高性能计算场景(如数据中心、AI加速)提供了基础支撑。:通过模式过滤,开发者可以灵活选择监控不同特权层的事件(如仅监控用户模式或监控所有模式),优化性能分析的针对性。:S-mode可直接识别溢出计数器,无需通过M-mode介入,降低了性能监控的软件开销。:首次在RISC-V中标准化溢出中断支持,解决了早期仅能通过轮询检测溢出的问题。例如,S-mode需。

Y_7659348的博客 668

RISCV Hardware Performance Monitor 和 Sscofpmf 扩展

RISCV的HPM和Sscofpmf 扩展

qq_45226456的博客 1502

Linux内核配置Kconfig

在遍历完各级子目录的Makefile和Kconfig文件后,会在内核源码的顶层目录下生成一个.config文件,该文件用来保存所有的配置项,然后回到顶层Makefile开始编译。Kconfig文件用来控制内核的编译动作。简单理解,就是Kconfig配置了哪些文件需要参与编译,哪些文件不用编译。...

Pz_z1的博客 6970

LWN:Intel CPU的间接跳转保护功能!

关注了就能看到更多这么棒的文章哦~Indirect branch tracking for Intel CPUsBy Jonathan CorbetMarch 31, 2022DeepL assisted translationhttps://lwn.net/Articles/889475/"Control-flow integrity"(CFI)是一套旨在防止攻击者改动...

Linux News搬运工 1274

LWN5.18合并窗口第一部分

关注了就能看到更多这么棒的文章哦~5.18 Merge window, part 1By Jonathan CorbetMarch 25, 2022DeepL assisted translationhttps://lwn.net/Articles/888736/截至目前,在 5.18 开发周期中已有 4127 个 non-merging changeset 进入了 ma...

Linux News搬运工 499

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

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

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

如何将tmux两个会话组合为一个会话?

上面的命令假设你已经知道源和目标会话的名称以及窗口和面板的编号。通过这样的操作,可以将内容从一个会话移动到另一个会话,实现类似合并的效果。在 tmux 中,不能直接将两个独立的会话合并为一个会话,但是你可以将一个会话中的窗口(windows)或面板(panes)移动到另一个会话。你可以将一个会话中的窗口移动到另一个会话。另一种方法是在两个会话之间链接窗口,这样同一个窗口就可以在两个会话中访问。这里需要指定源窗口和面板编号以及目标窗口和面板编号。这将在目标会话创建一个到源会话窗口的链接。

m0_57236802的博客 570

Intel应对ROP攻击的新技术

Intel长期与社区合作,以增强操作系统和软件的安全防护。但随着防护技术的增强,攻击者也相应地提高技术手段,JOP(Jump Oriented Programming)和ROP(Return Oriented Programming)就是被广泛采用的手段。因为使用的是内存中已有的代码,所以很难被发现。 Intel和Microsoft在过去的10年里,设计了十多种方案来解决这个问题,最后归结于x86

softee的专栏 4441

LWN:用户空间的影子堆栈!

关注了就能看到更多这么棒的文章哦~Shadow stacks for user spaceBy Jonathan CorbetFebruary 21, 2022DeepL assisted...

Linux News搬运工 2217

linux小技巧---在linux系统下把多个终端合并在一个窗口

用正常的方式打开一个终端。2.使用组合键 ctrl+shift+t , 这时就在同一个窗口中打开了另一个终端,当然再按一次ctrl+shift+t,会再生成一个,需要多少了大家可以自行决定。3.按组合键Alt+1,就会切换到第一个终端,按Alt+2,就会切换到第2个终端,Alt+n,对应的就会切换到第n个终端。...

vikki chen 的博客 1万+
上一篇: LWN:Linux audio plugin APIs综述!
下一篇: LWN:Intel CPU的间接跳转保护功能!
LinuxNews搬运工
博客等级 码龄7年 419粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值