泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!


泰晓资讯·10 月 / 第一期 / 2021

unicornx 创作于 2021/09/30

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

Linux 内核最新消息


Linus Torvalds 本周发布了 Linux 5.15 内核的第三周 RC 版本 Linux 5.15-rc3,这个版本整体看起来不错。Linus 在发布公告中指出,"So after a somewhat rocky merge window and second rc, things are now actually looking pretty normal for rc3. Knock wood.",看起来经历了一个有点不稳定的 RC2 之后,现在 RC3 的情况逐渐趋于正常。

Linus 在 rc3 的发布邮件中还补充说,"There are fixes all over, and the statistics look fairly regular, with drivers dominating as they should (since they are most of the tree). And outside of drivers, we have a fairly usual mix of changes - architecture fixes, networking, filesystems, and tooling (the latter being mostly kvm selftests).",总之统计数据看起来相当规律,提交中占大头的还是驱动程序相关的修改(毕竟驱动代码占据了内核仓库的很大一部分)。在此之外,和以往类似的,是一些有关架构、网络、文件系统和工具(主要是有关 kvm 自测)的改动。

值得注意的还有一块是有关内核性能衰退的修复工作,Linux 5.15 合并窗口期间引入的新特性导致了内核在各种工作环境下表现出比较明显的性能下降,这些问题都需要重点修复,以便保证能在 11 月初推出下一个稳定的内核版本。


stable5.13.19 [EOL]2021-09-18

关键词: Linux

近期 Linux 内核的重要补丁(节选)


Core kernel

关键词: Linux

Linux 5.15 中有关 Memcg 的性能衰退修复

As a follow-up to A Fix Is Pending For That Linux 5.15 Performance Regression, Linus Torvalds decided to pull the fix directly into Linux 5.15 Git today for addressing this real-world, measurable performance regression.

Linus Torvalds 决定将有关 memcg 的修复直接 merge 进入 Linux 5.15,以解决这个非常明显的性能衰退问题。Linus 对这个提交的评论如下:"Ok, I've applied this just to close the issue. If somebody comes up with more data and the delayed flushing or something is problematic, we'll revisit, but this looks all sane to me and fixes the regression." 从测试结果来看,这个修复解决了这个问题。编译构建和其他测试结果都恢复到可以和 Linux 5.14 相媲美的程度。

新闻出处,“Linux 5.15 Lands Memcg Performance Regression Fix”: https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.15-Regression-Fixed

关键词: Linux, Memcg

Linux IO_uring 现在可以达到单核 3.8M IOPS

It was just last month when ~3.5M IOPS per-core was impressive with the code for Linux 5.15 to further push Linux’s I/O limits. Now for code likely to be included in Linux 5.16 it’s currently at 3.8M IOPS with a single tread.

就在上个月,Linux 5.15 中的单核大约 350 万 IOPS 的吞吐率给大家留下了深刻的印象,这进一步拉高了大家对突破 Linux 的 I/O 上限限制的期望。现在,对于改进的版本(有可能要到 Linux 5.16 才会被合入了),目前的 IOPS 峰值已经可以达到 380 万。

在进一步优化的基础上,根据 block 子模块的维护者和 IO_uring 的首席开发人员 Jens Axboe 基于 Intel Optane 的机器上的测试,整个吞吐率有了大约 3% 的提高。Axboe 在 Twitter上表示,通过这些最新补丁,他现在在单核上实现了 380 万的 IOPS。Pavel continues his relentless quest to squeeze every bit of efficiency out of the stack. This one nets me about a 3% improvement in single thread performance, 3.7M -> 3.8M IOPS.https://t.co/bzWQGZ7GLG

IO_uring 为整个 Linux Storage 领域带来了太多的惊喜。我们对在今年实现单线程 4M IOPS 充满了期待。

新闻出处,“Linux IO_uring Can Now Achieve Up To ~3.8M IOPS Per-Core” https://www.phoronix.com/scan.php?page=news_item&px=Linux-IO-3.8M-IOPS-Per-Core

关键词: Linux,IO_uring

FUTEX2 的最新进展

The promising FUTEX2 work focused on improving the Linux performance for running Windows games via Wine/Proton by extending futex to wait on multiple locks is still moving forward.

Linux 内核中引入的 FUTEX2 是一项非常有前途的工作,该新特性专注于扩展 futex 并实现同时在多个锁上进行等待,从而提高在 Linux 上基于 Wine/Proton 运行 Windows 游戏的性能。这项工作目前仍在不断向前推进。

上个月,这项工作进行了修订,简化了实现,目前主要关注于实现新的 “futex_waitv” 系统调用,推迟了一些其他的开发工作,包括针对可变大小的 futex、自适应 NUMA 等。当前的工作重点是实现 “futex_waitv” 系统调用,通过更有效地模拟适配 Windows 的 WaitForMultipleObjects 行为来满足 Wine/Proton 的需求。其他的工作暂时放一放。

本周早些时候,一直领导这个补丁系列的来自 Collabora 的 André Almeida 在 2021 年 Linux Plumbers Conference 上介绍了当前的开发状态、设计更新以及还需要哪些工作。他在 LPC2021 讨论之后,发布了一个针对 “futex_waitv” 系统调用的新补丁。 新的补丁 v2 为 sys_futex_waitv() 添加了新的 clockid 参数,补丁还包括对文档和测试用例的更新以及一些错误修复。

FUTEX2 项目上针对 “futex_waitv” 系统调用的开发工作看上去很快就会稳定。我们期待这个工作能尽快完成并合入 5.16 的内核版本,这样在 2022 年初我们就能看到运行 Linux 电脑上游戏性能获得提升,尤其是 Steam Deck 等期待此功能的游戏。

新闻出处,“Updated “FUTEX2” futex_waitv Patches Posted To Address Latest Feedback”: https://www.phoronix.com/scan.php?page=news_item&px=FUTEX2-futex_waitv-v2

关键词: Linux, FUTEX2

Linux 内核中的 Zstd 压缩算法有望升级到更新的版本

While the Linux kernel is increasingly supporting the use of Zstd for various compression purposes, the current Zstd code within the kernel is out-of-date and efforts so far to re-base it against the closer to upstream Zstd state have been stalled. Fortunately, a new attempt at getting the Zstd code updated for the Linux kernel will be published soon.

Linux 内核中越来越多的地方开始使用 Zstd 实现各种压缩目的,这些工作包括:使用 Zstd 压缩内核模块、压缩固件、压缩内核 image,以及 Btrfs 文件系统中使用 Zstd 实现压缩这样的工作。Zstandard 因其快速的解压能力以及整体出色的设计和性能而越来越多地在整个开源生态系统中被使用。

虽然内核中一直在使用 Zstd,但现有的内核中的 Zstd 代码已经很久没有更新了。曾经有过这方面的努力,譬如来自 Facebook 的 Nick Terrell 曾经努力维持内核中的 Zstd 代码,使其保持最新从而更易于维护。可惜的是,这项工作并不顺利,最后也被放弃了。

幸运的是,Nick Terrell 最近分享了他正在开发一个新的补丁系列。他说很快就会在这方面采取一些行动,如果来得及的话他希望能够赶上下一个内核合并窗口。该工作能使内核代码进入至少基于 Zstd 1.5 的状态,从而更好地利用此压缩算法的功能提升内核的性能。

新闻出处,“Updated Zstd Implementation For The Linux Kernel Coming Soon”: https://www.phoronix.com/scan.php?page=news_item&px=Zstd-Updated-For-Kernel-Soon

关键词: Linux, Zstd

Picolibc,一个用于嵌入式行业的轻量级 C 库

While Keith Packard is known for his work on X11/X.Org, the past few years he has also been developing Picolibc as a C library intended for embedded systems. He also recently jumped from SiFive to Amazon and appears at the ecommerce giant to be working on Picolibc in an official capacity, presumably for use on Amazon’s growing hardware devices.

虽然 Keith Packard 以其在 X11/X.Org 方面的工作而闻名,但在过去几年中,他还一直在开发 Picolibc 这个用于嵌入式系统的 C 库。他最近从 SiFive 转投 Amazon,主要致力于开发 Picolibc 并推动其在 Amazon 不断增长的硬件设备上的应用。

Keith packard 近日代表 Amazon 出席了 Linux 基金会在 Picolibc 上的北美开源峰会。Picolibc 1.0 于 2019 年发布,这是我们在 2021 年听到的关于该项目的第一个状态更新。Picolibc 继续成熟并专注于当今轻量级嵌入式系统的需求,同时利用了来自 newlib 的一些代码。Picolibc 遵循 BSD 许可证。

如果您对 Keith 在 Picolibc 上的演示感兴趣可以查看幻灯片(https://static.sched.com/hosted_files/osselc21/7b/picolibc.pdf)或者访问托管在 GitHub 上的代码(https://github.com/picolibc/picolibc)。

新闻出处,“Picolibc Continues Maturing As Very Lightweight C Library For The Embedded World”: https://www.phoronix.com/scan.php?page=news_item&px=Picolibc-2021

关键词: Picolibc, Amazon

Rust 增加对 Motorola 68000 处理器的支持

With the m68k community continuing to be active around supporting the vintage Motorola 68000 series with modern open-source software, Rust has now merged support for these old processors.

随着即将发布的 LLVM/Clang 13 版本增加了针对 M68k 处理器的后端,基于 LLVM 的 Rust 现在也增加了对 Motorola 68000 系列处理器的支持。这个合并请求已于本周提交,以将 M68k target 添加进 Rust。借助上游 LLVM 中已有的对 Motorola 68000 的支持,Rust 侧的支持仅需要添加大约 200 行代码。这个针对 Linux 上 m68k 的更新使得我们可以在这些大约 30 年前上市的 32 位处理器上使用 Rust,注意当前这项改动还处于实验阶段。

新闻出处,“Rust Lands Support For The Motorola 68000 Processors”: https://www.phoronix.com/scan.php?page=news_item&px=Rust-Adds-Motorola-M68k

关键词: Rust, Motorola,m68k

Ubuntu 21.10 Beta 发布

Canonical has released the final beta of next month’s Ubuntu 21.10 “Impish Indri” release.

Canonical 近日发布了 Ubuntu 21.10 的最终测试版 Ubuntu 21.10 Beta。Ubuntu 21.10 代号为 “Impish Indri” (“Indri” 是指 “babakoto”,是现存最大的狐猴之一,头部加身长约有 64 至 72 厘米,体重 6 至 9.5 公斤),其稳定版本计划于 10 月 14 日发布。

一起发布的 Beta 版本还包括 Ubuntu Desktop、Ubuntu Server、Ubuntu Cloud、Kubuntu、Lubuntu、Ubuntu Budgie、UbuntuKylin、Ubuntu MATE、Ubuntu Studio 和 Xubuntu 这些 Ubuntu 的衍生发行版。

Ubuntu 21.10 采用 Linux 5.13 内核(很遗憾不是 5.14),并升级到 GCC 11 编译器以及其他更新的工具链版本,该发行版本还包含了许多其他的改进。在桌面方面,Ubuntu 21.10 使用的是 GNOME 40。

新闻出处,“Ubuntu 21.10 Beta Released”: https://www.phoronix.com/scan.php?page=news_item&px=Ubuntu-21.10-Beta

关键词: Ubuntu,Indri

GCC 12 添加 Stack Variable Auto-Initialization 特性

Qing Zhao of Oracle presented yesterday during the LPC2021 GNU Tools Track around the work they and others have been engaged in for improving the security of the GNU Compiler Collection (GCC).

来自 Oracle 的 Qing Zhao 近日在 LPC2021 GNU GNU Tools Track 会议期间介绍了他们和其他人为提高 GCC 的安全性所做的工作。

这项有关 GCC 安全的工作是为了跟上 LLVM Clang 已经实现的一些安全功能。这些功能包括在返回时将调用者使用的寄存器清零(zeroing out caller-used registers on return)、栈变量的自动初始化(auto initializing of stack variables)、无符号溢出检测(unsigned overflow detection)等。例如,GCC 11 中已经支持的 zero-call-used-regs 编译选项,现在在 Linux 5.15 中可以选择使用该功能来增强内核安全性。

本月早些时候,我们注意到 GCC 12 已经实现了栈变量自动初始化。可以使用 -ftrivial-auto-var-init=zero 编译开关使能这个新的 GCC 12 安全相关功能。LLVM/Clang 在 2018 年就实现了这个安全选项。

除了栈变量自动初始化之外,为了完全跟上 Clang 所支持的所有安全特性,GCC 还需要实现诸如 “speculative load hardening”,”unsigned overflow protection”,以及 “control flow integrity” 这些功能。

新闻出处,“GCC 12 Adds Stack Variable Auto-Initialization, Other Security Improvements Forthcoming”: https://www.phoronix.com/scan.php?page=news_item&px=GCC-12-Better-Security

关键词: GCC,Clang,Security


资讯内容部分来自 “LWN.net“。如果您对某些 LWN 文章感兴趣(譬如希望获得全文翻译的)请扫描二维码加微信联系我们:

tinylab wechat

Read Album:

Read Related:

Read Latest: