LWN:内核5.4版本合并窗口——第二部分

2023-11-10 02:20

本文主要是介绍LWN:内核5.4版本合并窗口——第二部分,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640
点击上方蓝色“ Linux News搬运工”关注我们~

5.4 Merge window, part 2

By Jonathan Corbet

译者按:本文有两个笑话,看得懂的才是真开发者。一个是"revert the revert of the revert patch";另一个是supervisor -> hypervisor -> ultravisor,LWN subscriber都在问,今后比ultravisor更强的是啥visor。欢迎点击阅读原文在LWN网站直接看原汁原味的。

5.4-rc1的发布比起按照往常的经验所做的预测来说,晚了一天。截止此时,已经有12554个patch set合入了mainline repository。其中有2900个是在上次的总结之后合入的。虽然看起来数量比较少,其实后半部分合并窗口中还是有很多有趣的改动。

在后半部分合并窗口内合入了如下改动:

Architecture-specific

  • PowerPC架构支持"ultravisor",这是一个软件运行的特权级别,需要依赖hypervisor。

Core kernel

  • 增加了IORING_OP_TIMEOUT,用在io_uring_subsystem里。这个作用是让调用它的进程能在timeout之后被唤醒。

Filesystems and block layer

  • dm-verity子系统可以使用kernel keyring里的可信秘钥来验证某个存储器volume的root hash。

  • 新增了一个dm-clone target,可以对只读设备复制一份。“dm-clone的主要用途是把一个远端的、高延迟的、只读的、归档用途的块设备复制成为一个可写入的、快速的、能进行快速低延迟I/O的主流设备。”

  • F2FS文件系统能支持忽略大小写的文件名查找。

  • 新增virtiofs文件系统,这样host OS就能把文件系统高效的export给guest OS。

  • (虽然尚未放入5.4不过值得提一下)三星决定贡献出sdfat文件系统。这其实就是exFAT的一个新版本实现,据说代码质量和功能都要比现有的exFAT代码好。所以刚合入staging tree的exFAT代码可能不久后就会被替代掉了。

Hardware support

  • Clock: Marvell Armada AP CPU时钟控制器, MediaTek MT6779时钟控制器,Ingenic JZ47xx TCU时钟和中断控制器,Amlogic Meson虚拟实时时钟。

  • Miscellaneous: Freescale FlexTimer alarm timers,Macronix raw NAND控制器,Creative SB0540红外接收器,Intel Merrifield Basin Cove power-management ICs,NXP IMX7ULP watchdog timers,Spreadtrum pulse-width modulators。

  • PCI: Amazon Annapurna Labs PCIe控制器和NVIDIA Tegra194 PCIe控制器。

Memory Management

  • 支持在read-only file-mapped虚拟内存区域使用transparent huge page。目前来说这个功能只用与可执行代码段。需要使用madvise()来打开这个功能。

  • 新增两个madvise()命令,能强制kernel回收指定page(内存页面)。MADV_COLD会把指定的page移到inactive list,基本上就是把它们标记为没人使用状态,可以在page reclaim的时候释放。另一个更强的变种API是MADV_PAGEOUT,这会让这些page立刻被释放回收。

  • 上次在我们讨论内存管理性能回退问题的时候,大家希望能够revert一个revert patch来修复性能问题,最终这个revert revert patch在5.3-rc5合入了。现在5.4周期里又把这个改动revert了,成为了revert revert revert patch,同时也合入了一些修复改动。这个revert the revert的patch在5.4版本合入了。想看看为什么Linus会绕过memory-management developer直接合入这些patch吗?可以看看这里:Linus Torvalds的理由

Security-related

  • 在integrity-measurement (IMA)子系统增加了验证文件上附加的签名的能力。目前文档还不完整。

  • 多年争论之后,kernel lockdown patch set终于以Linux security module(LSM)的形式合入了。

  • (可能就是这个原因导致了5.4-rc1延迟了一天)最后一刻,Torvalds决定合入一个熵采集(entropy-colleciton)机制来实现"jitter entropy"方式的随机数生成。他的目的是能修复boot-time entropy问题,因为这可能会导致系统在启动过程中某些情况下会hang。不过这可能不是最终解决方案:“我不保证我的patch能是最终解决方案。个人看来这个方案还是可以接受的,改动不是很危险,如果这个patch让某些较真的开发者感到不爽,然后能发个更好的方案出来,那就值得了。” Torvalds的意见是很明确的,他希望在5.4里面一定要能解决这个boot-time entropy 问题。

Internal kernel changes

  • build系统如果检测到在使用gold版本的链接器(ld),就会拒绝继续进行编译。因为目前gold版本链接器在编译kernel的时候会有一些问题。

  • 支持了kernel symbol namespace。这样就能对kernel export出来的几千个symbol进行一些管理了。

  • checkpatch.pl工具会对changelog里的无效commit ID报warning。

社区里面计划在接下来的7~8周能把5.4 kernel稳定下来,这样预计能在11月下旬正式发布5.4版本。

全文完

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

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议修改再创作~

长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~

640?wx_fmt=jpeg

这篇关于LWN:内核5.4版本合并窗口——第二部分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/379837

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

利用Python实现Excel文件智能合并工具

《利用Python实现Excel文件智能合并工具》有时候,我们需要将多个Excel文件按照特定顺序合并成一个文件,这样可以更方便地进行后续的数据处理和分析,下面我们看看如何使用Python实现Exce... 目录运行结果为什么需要这个工具技术实现工具的核心功能代码解析使用示例工具优化与扩展有时候,我们需要将

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc