[置顶] 泰晓 RISC-V 实验箱,配套 30+ 讲嵌入式 Linux 系统开发公开课
泰晓资讯·11 月 / 第三期 / 2024
“泰晓资讯”,广泛报道 “Linux/开源” 业界资讯。欢迎广大读者投递相关资讯来源和素材,本站将进一步收集整理后发布给大家。
Linux 内核最新消息
目前为 Linux 6.13 的合并窗口期。预计 v6.13-rc1 会于下周初发布。
https://www.kernel.org/ updated by 2024/11/28
分支类型 | 版本 | 发布时间 |
---|---|---|
mainline | 6.12 | 2024-11-17 |
stable | 6.12.1 | 2024-11-22 |
stable | 6.11.10 | 2024-11-22 |
longterm | 6.6.63 | 2024-11-22 |
longterm | 6.1.119 | 2024-11-22 |
longterm | 5.15.173 | 2024-11-17 |
longterm | 5.10.230 | 2024-11-17 |
longterm | 5.4.286 | 2024-11-17 |
longterm | 4.19.324 | 2024-11-17 |
linux-next | next-20241127 | 2024-11-27 |
关键词: Linux
Linux 6.13 中合入了针对 Sched_Ext 的改进
One of the most prominent new features in Linux 6.12 was the merging of sched_ext for allowing extensible scheduler innovations by altering the scheduling behavior through (e)BPF programs. With the Linux 6.13 kernel there are some nice refinements to this extensible scheduler class.
Linux 6.12 中最突出的新增功能之一是合入了 sched_ext,该特性支持通过(e)BPF 程序改变调度的行为,从而方便扩展调度算法。在 Linux 6.13 内核中,对这个支持可扩展的调度类有一些很好的改进。
Linux 6.13 中针对 Sched_EXT 的一个非常有用的新增功能是支持了 LLC 和 NUMA。现在,Sched_EXT 可以在类似 multi-socket 服务器的 NUMA 环境中更好地运行。支持 last level cache(LLC) 使得在当今基于小芯片(chiplet-based)的处理器(例如 AMD Ryzen 和 AMD EPYC)的 Linux 系统上更好地实现对空闲 CPU 的检测。
Linux 6.13 中的 sched_ext 代码还可以更好地处理 WAKE_SYNC
,修复了多插槽 Intel Xeon Sapphire Rapids 服务器上的一个问题,即跨插槽情况下对同一队列高负荷下可能会导致系统锁死,以及更好地区分处理了 “dispatch” 和 “consume” 行为。
新闻出处,“Sched_Ext Changes Merged For Linux 6.13 With LLC & NUMA Awareness”: https://www.phoronix.com/news/Linux-6.13-Sched_Ext。
关键词: Linux, Sched_Ext
Linux 6.13 实现新功能,支持报告自引导以来挂起的任务数
Following all of the MM patches earlier this week sent in by Andrew Morton, on Sunday morning he sent out all of the non-MM patches that he manages for the Linux kernel. Notable for Linux 6.13 with this pull request is presenting the hung task counter as well as finishing off the folio conversion in the NILFS2 code.
继本周早些时候 Andrew Morton 发送了所有 MM 相关的补丁之后,他在周日早上发送了其他由他负责管理的非 MM 的补丁。在这个拉取请求中,值得注意的包括:显示挂起的任务计数器,以及在 NILFS2 代码中完成了 folio 的转换。
有关检测自引导时间以来挂起的任务数这个补丁,实现了一个计数器,以跟踪自启动以来挂起的任务数量。该补丁新增了一项 /proc/sys/kernel/hung_task_detect_count
来指示自系统/服务器启动以来挂起的任务警告的数量。这项统计对那些工作在 Linux 服务器上的管理员特别有用,在遇到大量意外挂起任务时可以帮助他们衡量是否存在软件会或者硬件问题。这虽然只是一个简单的指标,但到目前为止,内核中还没有任何方便的类似 “hung_task_detect_count” 的数据统计可用。
新闻出处,“Linux 6.13 Will Report The Number Of Hung Tasks Since Boot”: https://www.phoronix.com/news/Linux-6.13-Non-MM。
关键词: Linux
Linus Torvalds 改进 Futex 代码以改善用户空间访问
In between managing all of the pull requests being submitted during this two week long merge window for the Linux 6.13 kernel, Linus Torvalds has merged some of his own code this cycle.
虽然管理为期两周的 Linux 6.13 内核合并工作十分繁忙,但在此间隙,Linus Torvalds 还是抽空合并了一些他自己开发的代码。
就在 Torvalds 本人在 Linux 6.12 中制定了一个很小的性能优化补丁一个月后,对于 Linux 6.13,他正在开发另一个很小的优化。这一次,Torvalds 正在努力改进从 Futex 代码中进行的用户空间访问。
在 Linux 内核邮件列表中,Torvalds 对内核提出了一个新的改进建议。这位 Linux 的创建者在本周初的提交中解释原文如下:
“Josh Poimboeuf reports that he got a “will-it-scale.per_process_ops 1.9% improvement” report for his patch that changed __get_user() to use pointer masking instead of the explicit speculation barrier. However, that patch doesn’t actually work in the general case, because some (very bad) architecture-specific code actually depends on __get_user() also working on kernel addresses.
A profile showed that the offending __get_user() was the futex code, which really should be fixed up to not use that horrid legacy case. Rewrite futex_get_value_locked() to use the modern user acccess helpers, and inline it so that the compiler not only avoids the function call for a few instructions, but can do CSE on the address masking.
It also turns out the x86 futex functions have unnecessary barriers in other places, so let’s fix those up too.”
Linus Torvalds 用几十行代码清理了 Futex 代码。负责最初优化补丁的 Josh Poimboeuf 评论说,他还没有机会重新创建原始基准测试,但新代码 “看起来显然是正确的”。
总的来说,这只是一个小的改进,但 Linux 6.13 作为一个整体,从新功能到继续进行更多性能优化,都有非常令人兴奋的改进。
新闻出处,“Linus Torvalds Improves Futex Code To Improve User-Space Accesses”: https://www.phoronix.com/news/Linux-6.13-Torvalds-Futex。
关键词: Linux, Torvalds, Futex
LoongArch 支持实时内核以及 PREEMPT_LAZY
Merged for the Linux 6.12 kernel was the long-awaited real-time “PREEMPT_RT” kernel support and allowing it to be enabled across x86/x86_64, ARM64, and RISC-V CPU architectures. With the Linux 6.13 kernel, LoongArch is joining the RT party.
Linux 6.12 内核中合并了期待已久的实时 “PREEMPT_RT” 支持,并允许在 x86/x86_64、ARM64 和 RISC-V CPU 架构中启用它。在 Linux 6.13 内核上,LoongArch 也加入了支持 RT 的行列。
Linux 6.13 内核合并窗口期间,所有有关 LoongArch 架构的更新都已经提交。其中值得注意的是,新的提交中允许构建具有 PREEMPT_RT
支持的 LoongArck 内核,这对那些希望在这个来自中国的 CPU 架构上看到实时性支持的人来说是个好消息。
除了对 PREEMPT_RT
的支持,LoongArch 还推出了对 PREEMPT_LAZY
的支持。这种抢占模式是 Linux 6.13 的新功能,LoongArch 已经准备好支持它了。
LoongArch 在 Linux 6.13 中的其他变化包括解决了使用 GCC 15 编译器构建内核失败的问题,Loongson-2K1000/Loongson-2K2000 在 DTS 文件中启用 I2S 支持,以及其他一些小的变化。
新闻出处,“LoongArch Wires Up Real-Time Kernel Support & Lazy Preemption”: https://www.phoronix.com/news/Linux-6.13-LoongArch。
关键词: Linux, LoongArch
Microsoft 在 Linux 6.13 中对内核模块进行了有趣的改进
Sent out on Tuesday was the modules pull request for Linux 6.13 that have some low-level improvements but it noted that the biggest kernel modules highlight wasn’t in that pull request itself but had been added by way of the memory management pull. This was a change by a Microsoft engineer around caching of kernel modules into huge pages.
本周二我们观察到提交了针对 Linux 6.13 的有关 modules 的 PR,它有一些底层的改进,但我们注意到,最大的有关内核模块的改进亮点并不是跟着 modules 的 PR 合入的,而是跟着 MM(memory management) 的 PR 合入的,这就是由来自 Microsoft 的工程师 Mike Rapoport 开发的有关将内核模块缓存到大页面而进行的更改。
上周,MM 引入了一些不错的性能优化, 以及轻量级保护页等功能。其中就包括了来自 Microsoft 的 Mike Rapoport 开发的补丁,这个补丁在 x86_64 上对模块的 text 段使用大型 read only execute(ROX) pages 来分配可执行内存。
Rapoport 对这些补丁进行了解释:
“In order to support ROX allocations for module text, it is necessary to handle modifications to the code, such as relocations and alternatives patching, without write access to that memory.
One option is to use text patching, but this would make module loading extremely slow and will expose executable code that is not finally formed.
A better way is to have memory allocated with ROX permissions contain invalid instructions and keep a writable, but not executable copy of the module text. The relocations and alternative patches would be done on the writable copy using the addresses of the ROX memory. Once the module is completely ready, the updated text will be copied to ROX memory using text patching in one go and the writable copy will be freed.”
采用大型 ROX 页面缓存对减轻 TLB 指令压力和提高性能有很大的好处。
此支持由新的 “ARCH_HAS_EXECMEM_ROX” 选项控制,最初仅支持/启用 x86_64 的 Linux 内核构建。在未来的内核周期中,这种 execmem ROX 支持可以扩展到其他 CPU 架构。
这些补丁已经在内核开发人员之间经过了七轮审查和讨论,现在将和合入 Linux 6.13。而 Linux 6.13 内核正在成为另一个非常令人兴奋的功能丰富的版本,并将于 2025 年初发布,估计会出现在春季的发行版中。
新闻出处,“Microsoft Makes An Interesting Improvement To Kernel Modules With Linux 6.13”: https://www.phoronix.com/news/Linux-6.13-Modules。
关键词: Linux, Microsoft, Modules
MIPS 为 LLVM 编译器 添加一款 RISC-V CPU(P8700)的支持
MIPS has begun working on the open-source compiler toolchain support for their P8700 RISC-V based processors. Initial patches posted today bring-up the MIPS P8700 RISC-V support for the LLVM compiler stack.
MIPS 开始为其 RISC-V 的处理器 P8700 提供开源编译器工具链支持。今天发布的初始补丁为 LLVM 编译器堆栈提供了 MIPS P8700 RISC-V 支持。
MIPS P8700 是该公司在继 MIPS 架构之后设计的一款基于 RISC-V 架构的高性能处理器。P8700 系列支持 1 路或 2 路 SMT、乱序流水线、符合 RISC-V 标准的 ISA,旨在满足汽车应用和其他类似用途的计算需求。
虽然在 rv64imafdc 模式下采用符合 RISC-V 标准的处理器设计,但除了启用 Zba 和 Zbb 扩展外,还需要为 LLVM 增加额外的 CPU target,因为 P8700 为 conditional move 引入了两条新指令 “mipscmov” 和一个加载/存储对指令 “mipslsp”。
本周三,MIPS 提交了相关的 PR,大约 2.3k 行代码,现在正在审查中。此外,MIPS 还计划为 GCC 编译器和整个 GNU 工具链以及 Linux 内核和其他开源组件提供对 P8700 的支持。
新闻出处,“MIPS P8700 RISC-V CPU Support Posted For LLVM Compiler”: https://www.phoronix.com/news/MIPS-P8700-RISC-V-LLVM。
关键词: MIPS, P8700, RISC-V, LLVM
Linux 6.13 上 RISC-V 支持在用户空间中提供指针掩码
The RISC-V CPU port updates have been sent out for the in-development Linux 6.13 kernel.
针对 Linux 6.13 内核的 RISC-V CPU 架构方面的更新 PR 已经提交。这个周期最值得注意的是支持了用户空间的指针掩码(user-space pointer masking)。RISC-V 用户空间指针掩码用于内存标记,对标 Arm 的 Memory Tagging Extension(MTE)和 Intel 的 Linear Address Masking (LAM)。指针掩码利用了 RISC-V 平台上有效地址的忽略位,有助于用户空间应用的内存安全。此 RISC-V 指针掩码依赖于 Smnpm 或 Ssnpm 扩展。不过,默认情况下,指针掩码支持是禁用的,用户空间必须手动启用它。
Linux 6.13 上针对 RISC-V 架构还支持了探测矢量未对齐访问性能的能力,以及采用 Zacas 和 Zabha 支持在 RISC-V 系统上实现 qspinlock。
新闻出处,“RISC-V Changes For Linux 6.13 Deliver Pointer Masking In User-Space”: https://www.phoronix.com/news/Linux-6.13-RISC-V。
关键词: Linux, RISC-V
联系我们
欢迎扫描二维码加微信联系我们:
猜你喜欢:
- 我要投稿:发表原创技术文章,收获福利、挚友与行业影响力
- 泰晓资讯:汇总一周技术趣闻与文章,查看「Linux 资讯」
- 知识星球:独家 Linux 实战经验与技巧,订阅「Linux知识星球」
- 视频频道:泰晓学院,B 站,发布各类 Linux 视频课
- 开源小店:欢迎光临泰晓科技自营店,购物支持泰晓原创
- 技术交流:Linux 用户技术交流微信群,联系微信号:tinylab
支付宝打赏 ¥9.68元 | 微信打赏 ¥9.68元 | |
请作者喝杯咖啡吧 |
Read Album:
- 泰晓资讯·12 月 / 第二期 / 2024
- 泰晓资讯·12 月 / 第一期 / 2024
- 泰晓资讯·11 月 / 第二期 / 2024
- 泰晓资讯·11 月 / 第一期 / 2024
- 泰晓资讯·10 月 / 第二期 / 2024
Read Related:
Read Latest:
- Linux 681
- Sched_Ext 1
- Torvalds 1
- Futex 2
- LoongArch 25
- Microsoft 18
- Modules 1
- MIPS 12
- P8700 1
- LLVM 45
- RISC-V 318