跳到主要内容

每周一龙:第 18 期

· 阅读需 8 分钟
WANG Xuerui
🐲龙门客栈打杂的

每周一都为大家报道 LoongArch 社区最前线的第一手新鲜资讯!

如无特别说明,文中提及的日期、时间都为北京时间(UTC+8)。

先「马」再看

本栏目的内容具有一定延续性,将持续追踪报道 LoongArch 领域的重要或长期项目(坑)。

Linux

Linux v6.6-rc4 已经正式 tagged, 包含了两处龙架构修复,请各下游发行版的打包同学们注意并尽量 backport:

  • 修复模块加载器不认识 binutils 2.41 汇编出的新重定位类型的问题(Tiezhu Yang),
  • 修复 NUMA 系统上物理内存天花板的计算问题(Huacai Chen)。

此外,龙架构 KVM 支持目前已进入 linux-next, 可搭配暂未完全上游的龙芯 QEMU 分支 供同学们试用了。 (目前已经在上游的随机自动化测试中被发现了一处编码不周, 不过预计假期结束之后就会修掉。)

工具链

gcc

持续有一段时间的 PR110939 上周终于得到了解决。 龙架构的自举,以及 ARM、RISC-V 上的相关测试失败都修复了。

xry111 在努力从默认开启 linker relaxation 所导致的指令调度机会减少中,抠回一些性能: 在一些「明摆着不能依靠链接器 relax 的情况下」(本人语),仍然如先前一样生成 explicit relocs。 他准备在假期结束之后将此工作发向邮件列表(否则发了也没人看)。 (感谢作者自我投稿!)

LLVM

LLVM 的协作流程已全面转向 GitHub PR,Phabricator 不日将转为只读模式,请开发者们注意。 详情请见迁移时间表

Ami-zhang 给 LLVM 中端的 Transforms/IPO/LowerTypeTests 工序pass适配了龙架构。

周报第 14 期报道过的 hev 的原子操作优化上周也进入了主线。

Rust

发稿几小时前,Rust 生态中最重要密码学基础库之一 ring 合并了龙架构支持。 时隔两年之久,ring 0.17.0 终于正式发布,可以期待未来的数月间更多 Rust 项目能够随着依赖版本升级,而获得龙架构支持了。

9 月 30 日 hev 将龙架构裸机的构建目标提升到了 Tier 2。 不巧的是,这个提交的合并似乎恰好错过了 Rust 1.74.0 的班车: 目前看因为就几行代码和 CI 改动,塞进去也不是不可以,不过不急的话估计等等更好。 龙架构的目前用户群体里,应该极少有既跟踪上游社区版本,又做裸机开发的,因此笔者认为问题不大。 (感谢作者自我投稿!)

同一天,xry111 给 Rust 读写目标代码文件格式的著名基础库 object 添加了 LoongArch ELF psABI 20230519 版本新增的重定位类型定义。 (感谢作者自我投稿!)

限时返场专栏:QEMU

最近 QEMU 上游的龙架构文件夹又热闹起来了。 后续看情况只要一周间的 QEMU 动态足够多,这个专栏就会出现并收纳它们,否则还是塞《杂闻播报》。

日前(9 月 21 日),QEMU 的龙架构模拟获得了 LASX 支持(不过很快被发现有坑)。 (感谢 @jiegec 的提醒!)

10 月 1 日,Jiajie Chen 给龙架构的 linux-user 模拟开启了 LSX、LASX 的 ELF HWCAP 标志位。 (这样被模拟的程序们就不会看着没 HWCAP, 便按照《龙架构软件开发与构建约定》有关条款, 主动规避向量指令了。)

同一天,笔者测试了 Richard Henderson 9 月 16 号给龙架构做的 128 位访存优化没问题, 回了封邮件,并且十分惭愧近期在 QEMU 水的补丁不够多: 准备今年看着把 LBT 扩展指令多利用起来。

9 月 30 日,Richard Henderson 在他给 linux-user 增加 vDSO 模拟的同时, 顺手适配了龙架构。

同一天,Jiajie Chen 修复了 前面提到的 LASX 支持代码中一处标志位写错,导致 guest 内核或进程崩溃,啥都干不了的巨坑。

9 月 26 日,Song Gao 修了龙架构 TCG 的一处构建错误,又解决了一处警告。

同一天,Xianglai Li 给龙架构加了热插拔虚拟 CPU 的能力。

杂闻播报

9 月 29 日,Shi Pujin 在 Slackware CN 用户社区发布了 Slackwareloong 1.0 LTS 版本。 (感谢作者自我投稿!)

社区整活

本栏目接受任何网友的投稿,只要内容与 LoongArch 有关,并可以为读者带来价值, 无论严肃贡献(整的大活)或是博君一笑都一概欢迎!

LA UOSC 网友 autistic-chad(GitHub @cl91在憋大招: 将 GSGPU 的内核驱动从 Loongnix 4.19 内核移植到主线版本(6.6+)!

RESPECT

这需要跨越 5 年的时间,26 个正式版本,数万条图形子系统提交,几十甚至上百次合并冲突或接口变更; 还没算上 GSGPU 和 Apple M1 GPU 情况类似,都处于 0 公开文档状态。 向这位勇士致敬!

也欢迎有意向的同学在 LA UOSC 论坛上述的贴子参与互动: 有一份热,发一份光, 以使上游内核的使用者们能早日用上龙芯集显的 3D 加速蚊子再小也是肉

张贴栏

本栏目可供张贴公益性质的各种信息。