![640](https://img-blog.csdnimg.cn/img_convert/f6b4f6dfdcb2402e5c954239125ed9cb.png)
5.3 Merge window, part 1
By Jonathan Corbet
July 12, 2019
在Janathan撰写此文的时候,已经有6666个patch被合入mainline仓库了,都会包含在今后发布的5.3 kernel中。因为merge window(合并窗口)刚刚开始,所以会看到不少有趣的改动。下面就是目前合入的主要改动列表。
Architecture-specific
X86的umonitor,unwait,tpause指令支持在user space代码调用了。这样就能更加高效的使用短时间的delay,避免busy loop了。系统管理员可以控制CPU能被暂停的最大时间。
pa-risc架构可以支持dynamic ftrace
Core kernel
scheduler utilization clamping patch。
允许系统管理员能让指定进程的workload看起来比真实workload更加多(或者少),从而让CPU frequency governor来相应的调整频率。
举例来说,跟用户交互的进程,就应该显得很需要CPU,这样它刚一运行,CPU frequency就能马上跳上去。
增加了pidfd_open()系统调用。允许进程能获取另一个系统中存在的进程的pidfd,并且能通过对pidfd的poll()系统调用在对象进程退出时获得通知。
增加了clone3()系统调用,重新清理了clone()接口,增加扩展性,允许今后再加更多flag。
新增了bpf_send_signal()帮助函数,允许BPF程序对任意进程发送signal。
BPF verifier可以支持loop(代码循环)了,只要loop的执行次数是有限的,并且不会导致BPF program超出最大指令数限制。这是BPF开发者持续抱怨的一个问题,终于得到了解决。不过这个不是去年讨论过的bounded-loop work方案,而是一个全新实现。看起来5.2里合入的verifier efficiency improvement patch让这个工作更加简单了。
Filesystems and block layer
NFSv4服务器会创建/proc/fs/nfsd/clients目录,在其中会记录目前连上的NFS客户端的信息,包括它们分别打开了哪些文件。
Hardware support
Audio: Conexant CX2072X codecs, Rhythm Tech rt1011 and rt1308 amplifiers, and Cirrus Logic CS47L35, CS47L85, and CS47L90 codecs.
Industrial I/O: Infineon DPS310 pressure and temperature sensors, Analog Devices ADF4371 and ADF4372 wideband synthesizers, Analog Devices AD8366 gain amplifiers, and ChromeOS EC lid-angle sensors.
Media: Allegro DVT video control units and Amlogic video decoders.
Miscellaneous: Freescale i.MX8 DDR performance monitors, Renesas RZ/A1 interrupt controllers, Annapurna Labs fabric interrupt controllers, Atmel SHA204A random-number generators, TI LM3697, LM36274, and LM36274 LED controllers, Dialog Semiconductor SLG51000 regulators, Socionext SynQuacer SPI controllers, Freescale i.MX8M CPU-frequency controllers, Infineon PXE1610 voltage regulators, Infineon IRPS5401 power-management ICs, NXP i.MX8 SCU on-chip OTP controllers, Mixel MIPI DSI PHYs, Fairchild Semiconductor FSA9480 microUSB switches, and ChromeOS embedded controllers.
Networking: NXP TJA11xx PHYs, Google Virtual NICs, and Hisilicon HI13X1 network interfaces.
USB: Qualcomm PCIe Gen2 PHYs.
Removals: 移除了isdn4linux ISDN驱动代码,已经挺长时间没有人使用这个功能了。相关的CAPI子系统代码也要被移除了,不过暂时只是先挪到staging目录下去。mISDN子系统会继续保留。
Networking
Kernel可以接受0.0.0.0/8这个范围内的IP地址了。
等整个互联网所有设备都支持,还需要不少工作,不过等到达成之后,就能又提供一千六百多万个IPv4的地址可供使用了。
可以在setsockopt()和getsockopt()系统调用上挂载BPF program(cgroup级别内)了。这样就能供系统管理员对这些API进行限制了。
增加了一个socket级别的hook,可以依照round-trip-time(RTT,IP包往返时间)这么小的时间间隔调用一次BPF program。
Security-related
加密秘钥可以跟某个特定用户或者网络命名空间(network namespace)绑定,这样确保在这个命名空间之外是不可见的。秘钥也可以受ACL(access control lists)保护了。(需要注意ACL patch后来被revert了,不过在merge window之内应该还会被加回来)
Internal kernel changes
force_sig() 之前能接受目标task作为一个参数的,不过其实这个函数只有是current task使用才是安全的。这个参数就被移除了,并且相应的调用代码也全部都被修改掉了。
Linus Torvalds在这个merge window内有点烦躁,因为碰到好几次影响到他自己机器的代码质量回退(regression)。大多数问题都已经解决了,希望后续流程能更加顺利。按照通常的流程,5.3 merge window会在7月21日结束,而最终的5.3版本应该在9月份早期发布。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
极度欢迎将文章分享到朋友圈热烈欢迎转载以及基于现有协议上的修改再创作~
长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~