行万里 2020-10-26
01. 化XFS系统系统 修复“Year 2038”问题
在对 Btrfs 进行显著优化外,正在开发中的 Linux Kernel 5.10 还对 XFS 文件系统进行了大幅的改进。在 Linux 5.10 中,XFS 文件系统支持了两项新的 on-disk meta-data 功能,其中包括
1.分配组中现在会记录 inode btrees 的大小。
这样做是为了增加冗余检查,并允许更快的安装时间。
2.现在最长支持至 2486 的时间戳。
这个“大时间戳”功能是对其时间戳和 inode 编码功能进行重构,以将时间戳作为 64 位纳秒计数器进行处理,并通过移位来增加有效大小。
现在,这使XFS可以很好地克服2038年的问题(在那里,以秒为单位存储自1970年以来的时间将不再适合有符号的32位整数,因此无法环绕)到现在的2486年。
使用以下命令创建新的XFS文件系统:启用bigtime允许的时间戳范围是1901年12月至2486年7月,而不是1901年12月至2038年1月。为了保持向后兼容,默认情况下当前未启用big timestamps功能。
除了磁盘上的元数据更改外,Linux 5.10的XFS还解决了在某些情况下,同步写入实际上不会刷新到磁盘和其他修复程序的问题。可通过此拉取请求找到Linux 5.10的初始XFS更改。预计在Linux 5.10合并窗口的未来几天中,将具有XFS可伸缩性改进和其他更改的辅助请求。
02. 将继续完善对英特尔Rocket Lake平台的支持
在 Linux Kernel 5.9 中已经初步支持明年 Rocket Lake 桌面平台的第 12 代图形处理器,并对像 RAPL 支持和其他 PCI ID 扩展提供早期的实验支持。而后续的支持工作会在 Linux Kernel 5.10 中陆续推进和完善。
libata 驱动库已经着手添加 Rocket Lake PCH-H RAID PCI IDs。此外 Linux Kernel 5.10 的 platform-drivers-x86 开发工作中,已经将 Rocket Lake 的支持添加到 intel_pmc_core 驱动中。
Linux Kernel 5.9 中的 DRM 代码为现有的 Gen12 代码构建了对 Rocket Lake 的初步支持,而在 Linux 5.10 中进行了必要的代码改进,从而能够正确地显示硬件。此外其他一些 Rocket Lake PCI ID 正在添加中。
由于在CPU方面的Rocket Lake主要是被Willow Cove移植到14纳米制程,并具有Gen12 Xe图形,因此在大多数情况下,Rocket Lake Linux的实现是相当简单的,在大多数领域中,它们只是在构建新的PCI ID脱离了现有的Tiger Lake代码路径和图形方面的Gen12 / Xe,并进行了一些其他驱动程序级更改。
英特尔已经表示,他们将在2021年第一季度末宣布 Rocket Lake。虽然完善的支持可能需要等到 5.11,但是在 5.10 中提供部分支持依然是个好消息。
03. 新的NTFS Linux内核驱动修订了九次 仍在审核中
在8月份的时候,Paragon软件公司高调宣布,他们的NTFS读写驱动在作为商业驱动提供给那些需要在Linux上对微软文件系统进行可靠支持的用户多年后,将在Linux内核中进行主线开发。两个月后,他们已经对这个驱动进行了第九次修订,以争取将其纳入内核主线。
在上游开发者提出一些最初的意见之后,Paragon很快就更新了他们的 "NTFS3"驱动补丁。他们继续完善代码,增加了额外的功能,修复了各种代码问题,改进了代码格式,处理了重新挂载文件系统等行为,并修复了压缩文件操作中的问题。
周五,他们发出了第九个版本的驱动,增加了额外的代码改进,最新的变化可以在内核邮件列表中找到。
由于目前的内核NTFS驱动主要集中在只支持读的状态,根据进度预估,这个新驱动不会登陆Linux 5.10,但合并操作大概会在明年出现。
这是因Linux 5.10合并窗口已经过了一半了,而这个NTFS3驱动的目标是取代现有的驱动,这使得最初的主线变得更加复杂,因为需要允许两个驱动都进入内核树一段时间,并且只允许一次编译一个,并且上游维护者更愿意在合并这个新驱动时选择多等等,直到它可以立即取代现有的NTFS支持代码。
不管怎么说,至少这个Paragon的贡献看起来已经很成熟了,为的是在2021年有更好的Linux NTFS支持。
04. Linux 5.10带来USB4支持
今年早些时候,Linux 5.6通过利用英特尔现有的Thunderbolt内核支持带来了最初形态的USB4支持,而更新的USB规范正是基于此。随后的内核继续成熟USB4的实现,这一点在Linux 5.10中得到了延续。
作为Linux 5.10的USB/PHY/Thunderbolt变化的一部分,包括更多的USB 4更新,主要是这个周期修复代码中的一些低级问题,这项工作继续由英特尔开源工程师主导。
内核围绕Tiger Lake也继续进行了很多优化Thunderbolt的工作,包括CM模式下的运行时电源管理、优化强电逻辑、用于Thunderbolt调试的DebugFS接口等修复和改进。
早在Linux 5.9开发期间,最初的Tiger Lake Thunderbolt / USB4代码就已经落地,并在后续的内核中进行了完善。
其它部分还包括对USB Type-C更新和PHY驱动程序的小工作,另一个值得注意的补充是对英特尔Lightning Mountain SoC的USB 3 PHY支持。
05. 众多网络通信方面的改进正来到Linux 5.10
与大多数内核周期一样,Linux 5.10 有大量的网络改进,从扩大的设备驱动覆盖范围到新的核心网络特性,以及继续推进 (e)BPF 等,这段时间的工作尤其繁忙。在Linux 5.10中,这些工作包括:
- 支持BPF程序与内核一起运送,并在启动时通过用户模式驱动机制提前加载它们。现在还支持可睡眠的 BPF 程序和其他 BPF 增强功能。
- 内核现在允许超过 255 个 IPv4 多播接口。
- 继续改进多路径 TCP (MPTCP) 代码。
- 对Intel IGB驱动程序的XDP支持。
- Ath11k WiFi驱动现在支持QCA6390和IPQ6018芯片组。
- Mellanox网卡对于不需要太多卸载的数据包可以看到高达20%的性能提升。THis优化可允许多个数据包共享一个描述符条目。
- 一个新的BPF助手可以帮助改善TCP背压,并帮助限制堆栈遍历。在一个开发者的测试中,在他的配置中,容器和主机之间的虚拟以太网驱动程序的TCP流速从10 Gbps左右提高到15 Gbps。
- 支持Mediatek MT76芯片的Wi-Fi改进。