LWN: Linux 5.6合并窗口进展——后半部分!

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

The rest of the 5.6 merge window

By Jonathan Corbet
February 10, 2020

原文来自:https://lwn.net/Articles/811230/

Linus在2月9日发布了5.6-rc prepatch,关闭了合入窗口。针对5.6 kernel,有10,780个changset合入了mainline repository。这比起近期的几个开发周期来说少了好多(5.5版本有14,350个,5.4有14,619个),不过跟去年同期的数字差不多(2019年1月的5.0-rc1有10,843个changset)。其中,有约6000个改动是在LWN的上一篇文章之后合入的,下面介绍一下这些改动。

Architecture-specific

  • 在3.19时合入的Intel memory protection extension被移除了。这个功能没能占据市场主流,GCC编译器里面也已经移除了对它的支持代码。

  • RISC-V架构支持了KASAN address sanitizer。

Core kernel

  • 最后一个使用32位timer_t类型的地方被修复了,相关的数据类型也从kernel里面删掉了。也就是说,除了少数一些问题以外,Linux kernel基本已经可以处理好year-2038问题了。user-space还需要不少工作,32位系统上的应用程序需要使用更新后的C库。更多细节见merge commit https://git.kernel.org/linus/22b17db4ea05

  • io_uring subsystem支持了更多操作,参见此文:https://lwn.net/Articles/810414/

  • 合入了pidfd_getfd()系统调用,用来供进程从另一个进程获取一个被打开的文件描述符。

  • "bootconfig"机制允许kernel在启动的时候接受一个包含command-line参数的文件。主要应用场景是例如在boot-time设置kprobe。tools目录下的bootconfig工具是用来把这种文件加入initramfs image里面的。文档见此https://git.kernel.org/linus/7b9b816f4b9a 。还有一组新增参数可以控制boot-time tracing设置的,文档见此 https://git.kernel.org/linus/47781947947a

  • 改变了pipe waiting的工作机制,可以加速kernel并行编译的速度——kernel开发者最常做的工作——不过同时也可能会在搭配旧版本GNU Make工具的时候导致bug。

Filesystems and block I/O

  • F2FS文件系统支持压缩了。参见https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4c8ff7095bef

  • 新增了softreval NFS mount选项,可以在server下线的时候通过缓存里的数据来让attribute revalidation 成功。如change log所说:“这个功能是为了让我们哪怕在server已经无法访问的情况下也可以遍历路径和使用已经缓存的信息(可能会比较慢)”

  • 缺省关闭了通过UDP进行NFS mount的功能。

  • 支持了NFS v4.2 server-to-server文件复制功能。

  • ZoneFS文件系统,协助支持对zoned block device的底层访问功能。参见https://git.kernel.org/linus/8dcc1a9d90c1

Hardware support

  • Clock: Qualcomm MSM8998 multimedia clock controllers, Qualcomm SC7180 clock controllers, Qualcomm IPQ6018 global clock controllers, and NXP IMX8MP CCM clock controllers.

  • Graphics: Boe Himax8279d panels, R-Car DU color-management modules, Xinpeng XPP055C272 panels, Leadtek LTK500HD1829 panels, and Sony ACX424AKP DSI command-mode panels.

  • Miscellaneous: Rockchip image signal processing units, TI TPS61050/TPS61052 LED controllers, ROHM BD71828 Power Management ICs, Qualcomm WCD9340/WCD9341 codecs, SGI IOC3 PS/2 controllers, and Mediatek system companion processors.

  • PCI: Broadcom Brcmstb PCIe host controllers and Intel Gateway PCIe host controllers.

Memory management

  • 新增了一个名为PR_SET_IO_FLUSHER的prctl()操作。目的是把一个进程标记为帮助进行内存回收的I/O操作的,从而在内存紧张的时候这个进程也不会被限制。在kernel里,会对这个进程的task structure设置PF_MEMALLOC_NOIO和PF_LESS_THROTTLE flag。

  • dma-buf heaps subsystem终于合入了,它起源于Android ION allocator。

Security-related

  • /dev/random blocking pool的patch被移除了。这个改动导致/dev/random的行为更像/dev/urandom了,也就是在pool被初始化之后不会再导致blocking。

Virtualization and containers

  • VirtualBox里运行的Linux guest系统现在可以mount由host系统export出来的文件目录了。

Internal kernel changes

  • pin_user_pages() API合入了,用于让kernel能更好地统计有哪些user-space page被pin在RAM里面。不过相应的利用这个功能的完整架构还没有合入。

  • build系统现在会test所有的UAPI头文件的#ifdef标记,避免把它们include了两次。

  • 新增了一个API在kernel生成synthetic trace event,参见https://git.kernel.org/linus/34ed63573b66 (注:可以用于在kernel里面配置监听某些trace event)

从现在到3月底4月初为止,kernel开发社区需要找寻并修复上述所有这些工作引入的bug了。

全文完

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值