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

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

hdu2241(二分+合并数组)

题意:判断是否存在a+b+c = x,a,b,c分别属于集合A,B,C 如果用暴力会超时,所以这里用到了数组合并,将b,c数组合并成d,d数组存的是b,c数组元素的和,然后对d数组进行二分就可以了 代码如下(附注释): #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<que

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点