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

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

泰晓资讯·1 月 / 第三期 / 2022

unicornx 创作于 2022/01/13

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

  • Linux 内核最新消息

https://lkml.org/lkml/2022/1/9/294

正如我们预期的那样,Linux 5.16 内核已升级为稳定版并于本周正式发布。

Linux 5.16 具有许多新功能,这包括:用于 Steam Play(和 Wine)的 FUTEX2 futex_waitv 系统调用,memory folios,对 AMD Ryzen 6000 mobile 系列处理器的更好支持,对 Intel Alder Lake S 显卡的更稳定的支持,对 Intel Sapphire Rapids 的 AMX 支持,对 具备 Radeon 显示改进的 AMD Ryzen 支持,以及大量其他硬件改进。

Linus Torvalds 在 5.16 的发布公告中写道:"Not a lot here since -rc8, which is not unexpected. We had that extra week due to the holidays, and it's not like we had lots of last-minute things that needed to be sorted out. So this mainly contains some driver fixes (mainly networking and rdma), a cgroup credential use fix, a few core networking fixes, a couple of last-minute reverts, and some other random noise." 虽然 5.16 经历了 8 个 RC 版本,但最后的一个 RC8 也是相对比较稳定的,只是加入了一些小的 bugfix。

简单的统计数据表明:Linux 5.16 大约有 2250 万行代码、以及额外的 380 万行注释和另外 400 万行空白行,分布在 63.5k 个文件中。总共包含大约 3040 万行的文本内容。

现在已经进入 Linux 5.17 的合并窗口期,让我们期待更多令人兴奋的功能吧。

https://www.kernel.org/ updated by 2022/1/13

分支类型版本发布时间
mainline5.162022-01-09
stable5.15.142022-01-11
longterm5.10.912022-01-11
longterm5.4.1712022-01-11
longterm4.19.2252022-01-11
longterm4.14.2622022-01-11
longterm4.9.2972022-01-11
longterm4.4.2992022-01-11
linux-nextnext-202201122022-01-12

关键词: Linux

  • Linux 5.17 AArch64 代码已为 SME 做好准备,添加了 KCSAN 支持

While the Linux 5.17 merge window hasn’t opened up yet, there have been a few early pull requests sent out this week ahead of this imminent next kernel cycle. One of those already sent out is the ARM64/AArch64 CPU architecture code updates for Linux 5.17.

将会随 Linux 5.17 合并窗口合入内核的重大改动之一是 Linux 5.17 的 ARM64/AArch64 CPU 架构代码更新。Linux 5.17 中针对 64 位 ARM 架构,有一些功能项的添加和大量代码清理。相关 PR 仅与架构有关,而不是针对新的 SoC 和其他硬件支持,该更新包括:

  • 为 ARM64 启用了 Kernel Concurrency Sanitizer (KCSAN)。 KCSAN 功能依赖 GCC 和 Clang 编译器工具实现针对 Linux 内核的 race detect。KCSAN 已经在其他架构上得到支持,而 64 位 ARM 现在也将成为支持列表的一部分。
  • 为内核实现 Scalable Matrix Extensions (SME) 所作的代码清理和准备工作。 Armv9-A 的 Scalable Matrix Extensions 基于 SVE/SVE2 构建,可提供更好、更快的矩阵运算支持。SME 允许 matrix tile storage, load/store/insert/extract tile vectors, outer products of SVE vectors, a streaming SVE mode 和其他改进。
  • 使用 SHA3 指令加速 XOR。
  • 针对更多 Arm PMU 的性能子系统更新。
  • 围绕 atomics、BTI(Branch Target Identification)和其他工作的代码清理。
  • 各种其他代码修复和改进。

原文新闻出处,“Linux 5.17 AArch64 Code Has SME Preparations, Adds KCSAN Support” https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-AArch64

关键词: Linux, AArch64

  • Linux 5.17 将支持 “第一款可用的低成本 RISC-V 平台”

In addition to the prompt support for Qualcomm’s Snapdragon 8 Gen 1, another exciting milestone for the in-development Linux 5.17 kernel is introducing mainline support for the StarFive JH7100, which has been trying to make its debut as the first usable and low-cost RISC-V platform.

除了对 Qualcomm 的 Snapdragon 8 Gen 1 的快速支持,正在开发中的 Linux 5.17 内核的另一个激动人心的里程碑是引入了对 StarFive JH7100 的主线支持,这将是第一款可用的低成本 RISC-V 平台。

StarFive JH7100 SoC 集成了来自 SiFive 的 U74 双核 64 位 RISC-V 处理器,运行频率为 1.5GHz,同时支持 4K 显示,但目前没有集成 3D GPU。StarFive JH7100 于去年作为一款低成本的 RISC-V SoC 发布。据报道,SiFive U74 内核的性能可以对标 Arm Cortex-A55 内核。

让我们对 StarFive JH7100 感到更令人兴奋的是,这款来自中国的 SoC 有望出现在一些低成本的 RISC-V 开发板上。对于 Linux 5.17,除了对 JH7100 SoC 的支持外,还有计划加入 BeagleV Starlight 开发板的 DeviceTree。为内核主线加入对 JH7100 和 Starlight 开发板支持的 PR 指出, "This SoC promises to be the first usable low-cost platform for RISC-V."。但不幸的是,Starlight 在量产前被放弃了。我们期待有更多基于 JH7100 SoC 的开发板能够进入内核主线。

StarFive VisionFive V1 是另一款基于此 SoC 的单板计算机。 VisionFive V1 使用带有 8GB LPDDR4 内存、microSD 卡插槽、HDMI 1.4 显示器、4 个 USB 3.0 端口的 JH7100 SoC,并且可以运行 RISC-V Linux 发行版。 VisionFive SBC 可以从中国订购,价格为 175 美元,但它被认为是实验性的,仅用于工程/开发。Antmicro 是另一家公司,他们一直在采用 JH7100 开发其开发板 Antmicro ARVSOM,该开发板兼容 Raspberry Pi Compute Module 4。

很高兴看到主线内核开始支持 JH7100 这款 SoC,希望基于此产品,市面上能够尽快推出价格低于 200 美元的主板。当然,目前对于那些相对有钱的人来说,SiFive HiFive Unmatched 是不错的选择。希望在 2022 年,我们会看到更多新的更高性能的 SiFive 开发板,从而更加促进 RISC-V Linux 的开发。

StarFive 的 GitHub 上(https://github.com/starfive-tech/JH7100_Docs)提供了有关 JH7100 SoC 的各种技术文档。

原文新闻出处,“Linux 5.17 Adds Support For “The First Usable, Low-Cost RISC-V Platform”” https://www.phoronix.com/scan.php?page=news_item&px=Linux-5.17-StarFive

关键词: Linux, RISC-V,StarFive, JH7100

  • Linux 串口控制台驱动获得 25% 的性能改进

It’s not an area of Linux hardware performance we normally look at, but thanks to a Red Hat engineer discovering very low serial console performance, there is an improvement queued up for introduction in Linux 5.17…

Linux 5.17 中有一项性能改进是有关串口控制台驱动,这个改进由来自 Red Hat 的工程师 Wander Lairson Costa 提供。他注意到 HP Proliant DL380 Gen9 服务器上的串口控制台吞吐量远低于预期:预期为 10KB/s,但当前的 Linux 内核仅达到 2.5KB/s 左右。 Linux 8250 串行控制台驱动程序仅发送一个字节就需要大约 410 微秒。

针对 Linux 上 8250/16550 串行端口控制台驱动程序,Wander 使用 16550 UART FIFO 缓冲区,使得受影响系统上的 8250 控制台驱动程序的串行控制台吞吐量性能提高了约 25%。该补丁是本周三由 Greg Kroah-Hartman 作为 Linux 5.17 合并窗口的 TTY/serial 更新的一部分发送的。该补丁还包括了一些 TTY 代码清理等工作。还修复了一个十分古老的问题:在使用 Ctrl + Alt + Fn 键在 TTY 控制台与桌面之间切换时键盘锁定 LED 变得不一致。

原文新闻出处,“Linux Serial Console Driver Lands Patch For Possible ~25% Performance Improvement” https://www.phoronix.com/scan.php?page=news_item&px=Linux-Serial-16550-FIFO

关键词: Linux,Serial,Console

  • 2022 年 Linux 将引入一项非常诱人的增强功能 - MGLRU

Going back a number of months Google engineers have been working to address the issue of the Linux kernel’s page reclaim code being too expensive for which they devised the multi-generational LRU framework “MGLRU” and it continues being worked on with mainline ambitions.

好几个月以来,Google 的工程师一直在努力解决 Linux 内核的页面回收代码效率低下的问题,为此他们设计了 multi-generational LRU 框架,简称 “MGLRU”,并继续致力于将其合入内核主线。

从服务器到 Chrome OS 以及 Android 设备,应用 MGLRU 都取得了非常有希望的结果。MGLRU 在选择回收的物理页时会做出比当前内核代码更好的选择,并更加有效。Google 的工程师之前给出的实验数据是冷启动时间减少了多达 16%,同时减少了因为过低内存而杀死进程的概率。在 Chrome OS 上的对比数据是减少了 59% 以上,浏览器中因内存过低导致的无法打开页面 tab 的次数减少了 96% ,服务器上的测试结果也非常有希望。

上周发布了 MGLRU v6 补丁。 Redis、PostgreSQL、MongoDB、Memcached、Hadoop、Spark、Cassandra、MariaDB 和其他工作负载的最新基准测试看起来都非常有前景。

为了实现该神奇的改进,内核代码修改了差不多 3000 行代码。希望 MGLRU 能够在不久的将来进入主线。

更多介绍请阅读新闻出处,“MGLRU Is A Very Enticing Enhancement For Linux In 2022”: https://www.phoronix.com/scan.php?page=news_item&px=Linux-MGLRU-v6-Linux

关键词: Linux, MGLRU

  • Fast Kernel Headers 补丁发布第二版,采用 Clang 构建 Linux 内核速度可提高大约 88%

What may end up being one of the greatest Linux kernel features of 2022 is the recently published “Fast Kernel Headers” effort for cleaning up the kernel headers and dramatically speeding up Linux kernel builds both for absolute/clean and incremental builds. Fast Kernel Headers can cut the Linux kernel build time in half or greater and out this weekend are the v2 patches.

很有可能成为 2022 年最伟大的 Linux 内核新特性之一的是最近发布的 “Fast Kernel Headers” 补丁,该补丁清理了内核头文件并显著加快了 Linux 内核构建速度。Fast Kernel Headers 补丁可以将 Linux 内核构建时间缩短一半或更多,上周末推出了 v2 补丁。

在上上周 Ingo Molnar 提交了 Fast Kernel Headers 补丁集工作的第一版,将 Linux 内核构建时间缩短了 50~80%。该补丁集包括了大约 2,300 个小补丁修改,清理了内核中文件之间的依赖问题(补丁中形容其为 “dependency hell”),并彻底改造了头文件的层次结构。Ingo 为这个补丁系列工作了一年多,这可能是 Linux 内核有史以来最大的 “功能” 修改。

上周六 Ingo 发布了 Kernel Headers v2 补丁作为更新系列。使用 v2 补丁,代码已经重新基于 Linux 5.16-rc8 做了 rebase,值得注意的是,现在也支持使用 LLVM Clang 编译器进行构建,而不仅仅是 v1 补丁情况下的 GCC。v2 还包含了一些错误修复、头文件优化,可以将 RDMA 子系统的构建速度再提高 9%,减少 linux/sched.h 头文件的使用,以及各种其他修复和代码改进。

借助 LLVM Clang 支持,Ingo 测算加入这个补丁系列后可以以将内核构建过程加速 88%!将 Clang 与此补丁系列一起使用时,构建时间缩短了 88%,这非常令人印象深刻,并且略微领先于 GCC 的改进效果(77%)。

更多介绍请阅读新闻出处,“Fast Kernel Headers v2 Posted - Speeds Up Clang-Built Linux Kernel Build By ~88%”: https://www.phoronix.com/scan.php?page=news_item&px=Fast-Kernel-Headers-v2

关键词: Linux, Clang

  • LLVM 加入 BOLT 以优化二进制文件以获得更快的性能

Merged into LLVM’s mono repository minutes ago was BOLT! This is the Facebook-developed tool for optimizing the layout of binaries in the name of delivering greater performance. Facebook (now Meta) already has been using BOLT internally to great success with production workloads, it’s continued advancing in the public as open-source for a while, and is now upstream in LLVM for fostering its future development.

本周刚刚合入 LLVM 仓库的是 BOLT!这是 Facebook 开发的工具,通过优化 GCC 和 Clang 生成的二进制文件的代码布局来提高 CPU 缓存的使用率和其他可能的影响因素,加速 Linux 二进制文件的运行性能。Facebook(现在的 Meta)已经在内部使用 BOLT 在实际产品中取得了巨大成功。

BOLT 作为开源项目已经在公众中推广了一段时间,当时专注于 BOLT 使用了几个 LLVM 库,但在过去几年中一直是在树外开发的。自 2020 年以来,Facebook 一直致力于将 BOLT 作为一个新的子项目进入 LLVM 的上游。他们同时继续推进它,甚至在 BOLT 优化 Linux 内核等领域取得了巨大成功:

使用 BOLT 的一般好处可以是从一位数到两位数的百分比改进。BOLT 带来的改进效果甚至超越了编译器 LTO(Link Time Optimizations)和 PGO(Profile Guided Optimizations)调优。与 PGO 一样,BOLT 确实需要适当的配置文件。

BOLT 非常有前途,现在令人兴奋的是,它现在已经进入了 LLVM 上游中。有关其设计的更多背景信息和技术细节,请参阅此 Facebook 研究论文:https://research.facebook.com/publications/bolt-a-practical-binary-optimizer-for-data-centers-and-beyond/

更多介绍请阅读新闻出处,“BOLT Merged Into LLVM To Optimize Binaries For Faster Performance”: https://www.phoronix.com/scan.php?page=news_item&px=LLVM-Lands-BOLT

关键词: Linux, LLVM,BOLT

联系我们

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

tinylab wechat



Read Album:

Read Related:

Read Latest: