内容简介:关注了就能看到更多这么棒的文章哦~全文完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合并提交
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Iterative Methods for Sparse Linear Systems, Second Edition
Yousef Saad / Society for Industrial and Applied Mathematics / 2003-04-30 / USD 102.00
Tremendous progress has been made in the scientific and engineering disciplines regarding the use of iterative methods for linear systems. The size and complexity of linear and nonlinear systems arisi......一起来看看 《Iterative Methods for Sparse Linear Systems, Second Edition》 这本书的介绍吧!