arch/riscv 开发者维护指南¶
概述¶
RISC-V 指令集架构是在公开环境下开发的:正在进行中的草案供所有人审阅并用于实现实验。新的模块或扩展草案在开发过程中可能会发生变化——有时会与之前的草案不兼容。这种灵活性给 RISC-V Linux 的维护带来了挑战。Linux 维护者不赞成频繁变动,Linux 开发流程更倾向于经过充分审查和测试的代码,而不是实验性代码。我们希望将这些原则同样应用于将被接受纳入内核的 RISC-V 相关代码。
Patchwork¶
RISC-V 有一个 Patchwork 实例,可以在其中检查补丁的状态
如果您的补丁没有出现在默认视图中,说明 RISC-V 维护者很可能已经请求进行更改,或者期望将其应用于另一个树。
自动化程序会针对此 Patchwork 实例运行,在补丁到达时对其进行构建/测试。自动化程序会根据补丁是否被检测为修复程序,将其应用于 RISC-V for-next 和 fixes 分支的当前 HEAD。如果这些分支不适用,它将使用 RISC-V master 分支。补丁系列所应用的具体提交记录将在 Patchwork 上注明。任何检查失败的补丁都不太可能被应用,且在大多数情况下需要重新提交。
提交检查清单附录¶
我们仅在相关模块或扩展的规范被列为未来不太可能发生不兼容更改的情况下,才会接受其补丁。对于来自 RISC-V 基金会的规范,这意味着“冻结”(Frozen)或“批准”(Ratified);对于 UEFI 论坛的规范,这意味着已发布的 ECR。(当然,开发者可以维护他们自己的 Linux 内核树,其中包含他们希望使用的任何草案扩展代码。)
此外,RISC-V 规范允许实现者创建自己的自定义扩展。这些自定义扩展不需要经过 RISC-V 基金会的任何审查或批准流程。为了避免因添加特定于实现者的 RISC-V 扩展而带来的内核代码维护复杂性和潜在的性能影响,我们只会考虑满足以下任一条件的扩展补丁:
已被 RISC-V 基金会正式冻结或批准,或者
已在广泛可用的硬件中实现,符合 Linux 的标准实践。
(当然,实现者可以维护他们自己的 Linux 内核树,其中包含他们希望使用的任何自定义扩展代码。)