皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

RISC-V 测试疏漏导致 Linux 6.18 中错误的 MIPS RISC-V 供应商 ID

本周 Linux 6.18 内核 RISC-V 修复中有一个有趣的轶事,暴露了 MIPS RISC-V/JEDEC 供应商 ID 在内核周期开始时合并的代码是错误的。测试也没有发现这个问题,因为 QEMU 模拟也意外地使用了错误的供应商 ID。

周五的 RISC-V 拉取请求中有一个有趣的部分:

“在我看来,这个 PR 中唯一值得注意的补丁是一个处理 MIPS RISC-V/JEDEC 供应商 ID 错误的补丁。显然这没有影响他们的测试,因为他们告诉我们他们的 QEMU 平台也在使用错误的供应商 ID。(他们正在修复上游 QEMU。)添加错误供应商 ID 的补丁只提交给了 v6.18 合并窗口。所以好消息是我们可以在最终 v6.18 发布前修复这个问题。与 MIPS 私下交谈后,他们向我们保证他们现在将开始在 FPGA 比特流上进行测试,希望这将成为一个已解决的问题。”

今天的 RISC-V 修复已合并,用于纠正 MIPS RISC-V 供应商 ID。这个 MIPS 供应商 ID 是 Linux 6.18 代码的一部分,用于引入 MIPS 供应商扩展,最初用于启动 xmipsexectl 扩展。

RISC-V 测试疏漏导致 Linux 6.18 中错误的 MIPS RISC-V 供应商 ID

添加到 Linux 内核和 QEMU 测试中的错误 MIPS 供应商 ID 是 0x722,而实际正确的供应商 ID 是 0x127。通过开发者之前的邮件列表讨论,不清楚 0x722 ID 是如何最初出现的,除了误读或将其与 0x27 和 0x2 混淆,这些也在程序员指南中关于位描述的部分提及。

RISC-V 测试疏漏导致 Linux 6.18 中错误的 MIPS RISC-V 供应商 ID

好消息是,在 Linux 6.18 稳定版本(暂定于 11 月 30 日周末发布)发布前及时发现了这个问题。开发者承诺进行更好的测试,希望未来不会出现类似情况。

转自  RISC-V Testing Lapse Resulted In Wrong MIPS RISC-V Vendor ID Landing In Linux 6.18 – Phoronix