内容简介:关注了就能看到更多这么棒的文章哦~全文完LWN文章遵循CC BY-SA 4.0许可协议。
关注了就能看到更多这么棒的文章哦~
5.8 Merge window, part 2
By Jonathan Corbet
June 14, 2020
原文来自:https://lwn.net/Articles/822527/
Linus Torvalds发布5.8-rc1并关闭本次开发周期的合并窗口的时候,已经有14,206个 changeset合入了5.8开发周期内。这比起5.7版本的周期中所有changeset的数量还要高,很明显kernel开发工作并没有被外界纷扰拖慢。上次总结之后已经有6,700个改动合入了,包括许多的bug fix以及内部清理工作,不过还是有许多重大功能更新。
Architecture-specific
-
RISC-V 体系代码中增加了KGDB kernel debugger调试功能。
Core kernel
-
/proc 文件系统现在可以正确支持多个private instance了,每个都有独立的mount参数。
-
如果loadable module中的某个section既允许write也允许execution,那么kernel会拒绝加载此module。这是一项大工程(确保kernel memory不可以既writable又executable)的一部分。
-
经过多年开发之后,generalized kernel event-notification mechanism 终于被合入了。参见https://git.kernel.org/linus/6c3297841472 这个commit来大致了解一下,以及https://git.kernel.org/linus/c73be61cede5 是这个新增的subsystem的文档。
Filesystems and block I/O
-
device mapper新增了一个名为"emulate block size"的 target,用来让相应的block device可以提供比硬件实际支持的更小的block size。文档在这里:https://git.kernel.org/linus/d3c7b35c20d6
-
device mapper的"zoned" target可以支持能把普通的block device跟zoned设备变种对应起来,这样比起直接使用zoned device来可以提高性能。
-
F2FS 文件系统支持了LZO-RLE压缩
Hardware support
-
Clock: Renesas r8a7742 时钟脉冲发生器, Qualcomm MSM8939 全局时钟控制器, Intel Lightning Mountain 始终控制器, Ingenic X1830 时钟发生器, MediaTek MT6765 时钟, and Baikal-T1 始终控制单元.
-
GPIO and pin control: The "GPIO aggregator" 驱动可以把若干个不相干的GPIO pin归拢在一起形成一个虚拟的GPIO chip,这样就能把它们一起暴露给user space来统一管理(尤其是可以利用/dev下面的权限来管控对这些GPIO pin的访问权限)。参见这里的文档:https://git.kernel.org/linus/ce7a2f77f976 。此外还增加了: NXP i.MX8DXL pin controllers, Qualcomm SM8250 pin controllers, and Intel Jasper Lake pin controllers.
-
Industrial I/O: Semtech SX9310/SX9311 proximity sensors, Analog Devices Generic AXI ADC IP cores, Analog Devices AD9467 High Speed analog-to-digital converters, Maxim max1241 analog-to-digital converters, Analog Devices ADIS16475 inertial measurement units, Atlas Scientific EZO sensors, and Vishay VCNL3020 proximity sensors.
-
I2C: Qualcomm camera control interfaces, Baikal-T1 system controllers, and Nuvoton I2C controllers.
-
LED: Dell Wyse 3020 status LED controllers, SGMICRO SGM3140 LED controllers, and Awinic AW2013 LED controllers.
-
Miscellaneous: Monolithic Power Systems MP2629 battery managers, Mediatek MT6360 power-management ICs, ARM Secure Monitor watchdog timers, ARM Integrator Logic Module buses, NVIDIA Tegra video input controllers, Baikal-T1 AXI and ABP buses, Socionext UniPhier PCIe endpoint controllers, Allwinner H6 I/O memory-management units, Ingenic JZ47xx coprocessors, CellWise CW2015 batteries, ROHM bd99954 chargers, Arasan NAND flash controllers, Cypress CY8CTMA140 touchscreens, Azoteq IQS269A capacitive touch controllers, Azoteq IQS620A pulse-width modulators, Texas Instruments K3 thermal sensors, Spreadtrum mailbox controllers, and Qualcomm inter-processor communication controllers.
-
Sound: Microsemi ZL38060 connected home audio processors, NXP enhanced asynchronous sample rate converters, and Maxim integrated max98390 speaker amplifiers.
-
USB: Qualcomm IPQ4019 USB PHYs, Qualcomm SNPS FEMTO USB HS PHYs, Cadence Salvo PHYs, and Intel ComboPHY subsystems.
Networking
-
"RDMA network block device" 可以支持使用RTRS协议来经过RDMA远程访问block device。文档在这里:https://git.kernel.org/linus/aa4d16e44f60
Security-related
-
如果某个device定义了一个有重叠的memory区间,那么就会导致/dev/mem下面的映射被作废。这个改动可以有效放置user space来映射某些可以memory-addressable device(例如persistent memory)之后导致kernel出错风险,例如,把这段memory区域里的内容作为文件系统mount到系统中使用的时候。
-
合入patch来阻止"special register buffer data sampling" 硬件漏洞。参见 Documentation/admin-guide/hw-vuln/special-register-buffer-data-sampling.rst
Virtualization and containers
-
新增的virtio-mem设备可以支持在guest系统中随时增加或减少memory。文档很少,不过可以从commit里看到一些信息:https://git.kernel.org/linus/5f1f79bbc9e2
Internal kernel changes
-
kcov这个代码覆盖测试 工具 现在可以统计到软中断模式下执行的代码了。
-
新增了一组locking函数(https://git.kernel.org/linus/9740ca4e95b4 ),供使用mmap_sem的代码使用。目前这个lock的使用方法尚未改变,不过这只是第一步,希望能增强mmap_sem所保护的代码的可扩展性。
-
编译kernel最起码需要使用GCC 4.8或以上版本了。Torvalds说他很想能更进一步(改到4.9),所以后续可能不久就会进一步改动这里。
-
合入了KCSAN data-race检测工具。注意,此工具需要使用尚未发布的Clang 11编译器才能正常工作。参见这个changelog https://git.kernel.org/linus/b791d1bdf921
-
x86 kernel现在增加了一个名为.noinstr.text的section,用来放置那些永远不会被例如kprobes这类的注入(instrumentation)工具所修改的代码。许多比较敏感的代码都被移到这个section了。此区域内的代码如果调用了此区域外的代码,那就必须要显式地标注出来。objtool工具可以确保满足这个要求。参见changelog (https://git.kernel.org/linus/076f14be7fc9 )来了解这个工作的动机和主要描述。
5.8内核已经进入了修正稳定性问题的阶段,预计在8月初汇能看到5.8的正式发布。
全文完
LWN文章遵循CC BY-SA 4.0许可协议。
欢迎分享、转载及基于现有协议再创作~
长按下面二维码关注,关注LWN深度文章以及开源社区的各种新近言论~
以上所述就是小编给大家介绍的《LWN:5.8内核合并窗口第二部分!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Linux 内核 4.17-rc1 发布,关闭了合并窗口
- 分组字符合并SQL语句 按某字段合并字符串之一(简单合并)
- git 的合并原理(递归三路合并算法)
- git 合并策略
- 算法 - 合并若干有序文件
- Git合并提交
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。