泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

基于泰晓RISC-V实验箱的Linux公开课
请稍侯

泰晓资讯·3 月 / 第二期 / 2024

unicornx 创作于 2024/03/14

“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。

Linux 内核最新消息

Linus Torvalds 本周发布了 Linux 6.8 的稳定版,看来他不再计划为 6.8 拖入加时赛。

和正常的版本相比,Linux 6.8 的改动有点大,但这个现象在过去两周开始趋于正常。所以 Torvalds 决定就此打住,发布了 Linux 6.8,而不是再来一个 6.8-rc8。在 Linux 6.8 的最后一周,我们加入了对一些新的 HP HyperX 控制器和各种其他更改的支持。

Torvalds 还指出,Linux Git 树即将跨越 1000 万个 Git 对象:

In a sea of normality, one thing that stands out is a bit of random git numerology. This is the last mainline kernel to have less than ten million git objects. In fact, we’re at 9.996 million objects, so we got really close to crossing that not-milestone if it hadn’t been for the nice calming down in the last couple of weeks. Other trees - notably linux-next - obviously are already comfortably over that limit.

Of course, there is absolutely nothing special about it apart from a nice round number. Git doesn’t care.”

本周我们又进入激动人心的 Linux 6.9 周期。

https://www.kernel.org/ updated by 2024/3/14

分支类型版本发布时间
mainline6.82024-03-10
stable6.7.92024-03-06
longterm6.6.212024-03-06
longterm6.1.812024-03-06
longterm5.15.1512024-03-06
longterm5.10.2122024-03-06
longterm5.4.2712024-03-06
longterm4.19.3092024-03-06
linux-nextnext-202403132024-03-13

关键词: Linux

Linux 6.9 新特性一览

以下是即将到来的 Linux 6.9 内核版本的一些更改的预览:

  • AMD 推出了 FRU Memory Poison Manager。
  • 更多对 AMD SEV-SNP 的支持。
  • AMD P-State Preferred Core 终于上线了!
  • 来自 Intel 的 Flexible Return and Event Delivery。
  • 对 x86 拓扑代码进行了返工。
  • 用于休眠的 LZ4 压缩选项,以产生更快的系统恢复时间。
  • RISC-V 内核现在可以使用 Clang Link-Time Optimizations (LTO) 进行构建,以获得更好的性能。
  • Variable Refresh Rate (VRR) 支持。
  • 为即将推出的设备(包括 RDNA 4 显卡)提供更多 AMD 图形硬件支持。
  • Intel Fastboot 正在所有硬件上启用。
  • Intel Arrow Lake 显卡支持。
  • 继续开发新的 Intel Xe 显卡驱动程序,该驱动程序已作为实验选项在 Linux 6.8 的上游合并。
  • Vivante IP 的 Etnaviv DRM 驱动程序已为 PCI 设备支持和 Mesa 的 Teflon NPU 用户空间做好准备。
  • FUSE passthrough 支持,以提高在用户空间中实现的文件系统的I/O性能。
  • 删除旧的 NTFS 文件系统驱动程序,因为自 Linux 5.15 以来一直存在于主线内核中的 Paragon Software 的 NTFS3 驱动程序已经证明了自己,并且具有更强的读/写支持和其他功能。
  • 改进了不区分大小写的文件/文件夹处理,包括提高性能的可能性。
  • 升级到 Rust 1.76 工具链和对 Linux Rust 内核代码的 AArch64 支持。
  • 支持三星无线游戏手柄、键盘和操作鼠标。
  • 较新的联想 ThinkPad 笔记本电脑上的电源配置文件密钥支持。
  • ASUS ROG RYUJIN II 360 AIO 散热器驱动程序位于硬件监控 (HWMON) 子系统中,用于散热/泵监控目的。

Linux 6.9 稳定版预计将在今年年中左右发布。

新闻出处,“Awesome Changes Coming With Linux 6.9: Lots From Intel/AMD, FUSE Passthrough & More Rust”: https://www.phoronix.com/news/Linux-6.9-Awesome-Changes

关键词: Linux

Linux 6.9 中支持更多 ARM 的 SoC 以及多种智能终端设备

All of the ARM SoC updates and new machine/platform additions were submitted and merged on Tuesday for the ongoing Linux 6.9 kernel merge window.

目前正处于 Linux 6.9 内核合并窗口期,我们看到所有针对 ARM SoC 更新和新机器平台的添加都已于本周二提交并合并。

Linux 6.9 的 SoC 更新并不像最近的一些内核版本那样令人兴奋,这些内核版本增加了对闪亮和新 SoC 的支持以及其他有趣的硬件添加,但在四个相关的拉取请求中仍然有相当多的代码改动和 DeviceTree 添加。Linux 6.9 中新增功能的一些亮点包括:

  • 支持 Mediatek MT7981B “Filogic 820” 和 MT7988A “Filogic 880” 网络处理器 SoC,这些 SoC 正在无线网络路由器中得到应用。
  • 支持 NXP 的最新的 i.MX8 系列型号 i.MX8DXP,适用于嵌入式和工业应用。
  • Renesas R8A779G2 (R-Car V4H ES2.0) 和 R8A779H0 (R-Car V4M) SoC, 主要用于支持在汽车中使用。
  • TI J722S 作为另一款汽车 SOC 进入主线。
  • LG Optimus Vu P895 和 Optimus 4X P880 作为使用旧版 NVIDIA Tegra 3 SoC 的手机支持。
  • 主线内核现在支持用于 Chromebook 的 Mediatek MT8186。
  • Samsung Galaxy Tab 4 10.1 LTE。

新闻出处,“New ARM SoCs & Various Smartphones/Devices Now Supported By Linux 6.9”: https://www.phoronix.com/news/Linux-6.9-SoC-Updates

关键词: Linux, ARM

Intel 继续为 x86S 准备 Linux 内核

Nearly one year ago Intel published the X86S specification (formerly stylized as “X86-S”) for simplifying the Intel architecture by removing support for 16-bit and 32-bit operating systems. X86S is a big step forward with dropping legacy mode, 5-level paging improvements, and other modernization improvements for x86_64. With the Linux 6.9 kernel more x86S bits are in place for this ongoing effort.

大约一年前,Intel 发布了 X86S 规范(以前称为 “X86-S”),通过取消对 16 位和 32 位操作系统的支持来简化 Intel 架构。X86S 是向前迈出的一大步,它放弃了 legacy mode, 改进了 5 级 页表和其他适用于 x86_64 的现代化改进。随着 Linux 6.9 内核的推出,更多的对 x86S 的支持已经到位。

本周 Linux 6.9 合并窗口期间合入了不少针对 x86 启动引导的改进。此合并继续改进 x86 早期启动阶段的代码,使其与位置无关。最终目标是允许使用与位置无关的代码(-fPIC)构建整个内核。此外,还有初步的控制台改进、一些微优化和清理,然后是更多的针对 X86S 的改动。

Linux 6.9 中的 X86S 工作包括针对 ring 0 中兼容模式的删除,因此需要重新设计 “trampoline_start64” 代码。来自 Intel 的 Linux 工程师 Kirill Shutemov 解释说 trampoline_start64 函数经过重新设计,仅在需要更改分页模式时才进入兼容模式。如果 CPU 已处于所需的分页模式,它将在 long mode 下继续工作。此更改将允许辅助 CPU 在 X86S 计算机上启动,只要 CPU 已处于正确的分页模式即可。将来,将有一种机制可以在分页模式之间切换,而无需禁用分页。

需要再次强调的是,X86-S 现在被称为 X86S。最初的 Intel 规范在 11 月悄悄更新为 v1.1,并且修订历史表明该名称确实已从 X86-S 更改为 X86S。

除了正在进行的 X86S 工作外,Linux 6.9 还合并了 Intel 的 FRED(Flexible Return and Event Delivery)功能,这个改动之所以引人注目是因为这是对未来处理器的又一次大修 …… 可能与 X86S 同时推出。

新闻出处,“Intel Continues Prepping The Linux Kernel For X86S”: https://www.phoronix.com/news/Linux-6.9-More-X86S

关键词: Linux, Intel, x86S

Linux 6.9 中为了 Atomic Console 功能继续清理 Printk 代码

The Linux work around atomic consoles and threaded printing remains ongoing. This work is particularly interesting as it’s the last major blocker before real-time “RT” kernel support can land. This work sadly isn’t ready for the new Linux 6.9 cycle but at least some printk clean-ups are landing for issues discovered during the atomic consoles effort.

Linux 中围绕 atomic consoles 和 threaded printing 的工作仍在进行中。这项工作特别有趣,因为它是实时 “RT” 内核完全合入主线之前的最后一个主要障碍。遗憾的是,这项工作还没有为新的 Linux 6.9 周期做好准备,但在 6.9 中至少合入了一些在解决原子控制台问题期间发现的针对 printk 的清理工作。

Linux 6.9 中的 printk 代码正在不断地被清理完善,也在变得更加健壮,这要归功于围绕线程打印和原子控制台的持续工作。SUSE 的 Petr Mladek 在 PR中解释道:6.9 的 Printk 更改改进了 panic 期间的行为。在测试引入原子控制台和 printk kthreads 的持续更改时发现了以下这些问题。

  • pr_flush() has to wait for the last reserved record instead of the last finalized one. Note that records are finalized in random order when generated by more CPUs in parallel.

  • Ignore non-finalized records during panic(). Messages printed on panic-CPU are always finalized. Messages printed by other CPUs might never be finalized when the CPUs get stopped.

  • Block new printk() calls on non-panic CPUs completely. Backtraces are printed before entering the panic mode. Later messages would just mess information printed by the panic CPU.

  • Do not take console_lock in console_flush_on_panic() at all.The original code did try_lock()/console_unlock(). The unlock part might cause a deadlock when panic() happened in a scheduler code.

  • Fix conversion of 64-bit sequence number for 32-bit atomic operations.

这些 printk 工作已合并到 Linux 6.9 中。继续祝愿 RT 实时内核代码最终能在 2024 年完全合入主线 Linux 内核。

新闻出处,“Linux 6.9 Cleans Up Printk Code While Preparing For Atomic Consoles”: https://www.phoronix.com/news/Linux-6.9-Printk-Cleanup

关键词: Linux, RT

Linux 提出的 Dynamic Kernel Stacks 方案有助于节省大量内存

A “request for comments” patch series was posted on Monday for a new dynamic kernel stacks feature for Linux. Early testing has shown the potential for significant memory savings.

本周一社区收到了一个 “request for comments” 补丁系列,提出了 Linux 的一项新的动态内核栈功能。早期测试表明,它有可能显著节省内存。

根据去年 LSF/MM 峰会的提议,Google 已经实现了对动态内核栈的支持。在过去十年中,上游 Linux 内核的默认栈大小从之前的 8K 增加到 16K。Google 一直在使用内核补丁来保留 8K 堆栈,但随着时间的推移,他们遇到了对更大栈大小的需求,这反过来又增加了超大规模部署的内存使用量。为了减少增加的内存使用,Google 一直在研究动态内核栈,因为许多内核线程可以只需要 4K 或 8K 的栈。

到目前为止,动态内核栈的 RFC 补丁正在进行中,并允许栈大小的变化范围从 4K 到最大 THREAD_SIZE。Google 工程师发现,动态内核栈平均可以节省 70~75% 的内核栈内存。

Pasha Tatashin 发布的早期结果非常有希望,但可能取决于工作负载、虚拟化和其他因素:

CPU           #Cores #Stacks  BASE(kb) Dynamic(kb)   Saving
AMD Genoa        384    5786    92576       23388    74.74%
Intel Skylake    112    3182    50912       12860    74.74%
AMD Rome         128    3401    54416       14784    72.83%
AMD Rome         256    4908    78528       20876    73.42%
Intel Haswell     72    2644    42304       10624    74.89%

根据 Tatashin 的介绍,一些拥有数百万线程的工作负载可以从此功能中受益匪浅。

新闻出处,“Dynamic Kernel Stacks Proposed For Linux With Big Memory Savings”: https://www.phoronix.com/news/Linux-Dynamic-Kernel-Stacks-RFC

关键词: Linux, Dynamic Kernel Stacks

Linux 继续努力删除大部分对 SPARC 32 位 CPU 的支持

Last year saw a lot of code clean-up work on the Linux kernel and working to remove support for obsolete hardware no longer being actively maintained within the mainline kernel tree for years. On the CPU side one of the efforts has been to remove unused SPARC 32-bit CPU support for old Sun workstations. The patches for removing unused SPARC32 code was updated this weekend and now undergoing review.

去年,我们在 Linux 内核上进行了大量的代码清理工作,并努力消除对多年来不再在主线内核树中积极维护的过时硬件的支持。在 CPU 方面,其中一项努力是删除了那些用于老旧的 Sun 工作站的 SPARC 32 位 CPU 代码。这部分工作目前收到了第二版更新,目前正在接受审查。

Sam Ravnborg 发送了 28 个补丁,用于从主线 Linux 内核中删除 Sun4m 和 Sun4d 代码的补丁,这次已是第二次修订。删除这些旧的 SPARC 32 位 CPU 会减少 11k 行不再维护的代码,从而减轻内核源代码树的负担。

不过,这个补丁系列并没有完全消除 SPARC 32 位支持,因为它为 Frontgrade Gaisler LEON3 处理器留下了足够的支持,这些 32 位 SPARC 处理器仍然有人使用。删除的代码包括针对 Sun4M 和 Sun4D 的支持。Sun4D “Dragon” 这款处理器在 90 年代初用于 SPARCserver 1000 和 SPARCcenter 2000,表现非常出色,但显然早已过时。此外删除的内容还包括 Sun4M,这款处理器作为 Sun-4 的变体,也是用于 SunOS 4.1+ 和 Solaris 2 的老物件了。

新闻出处,“Effort Continues To Remove Most Of The SPARC 32-bit CPU Support From Linux”: https://www.phoronix.com/news/Linux-Drop-Most-SPARC32-v2

关键词: Linux, SPARC

联系我们

欢迎扫描二维码加微信联系我们:

tinylab wechat



Read Album:

Read Related:

Read Latest: