Linux Kernel Regression
引入
总建议
“我们拒绝出现回归”是Linux内核开发的首要规则
如果某程序在原先的Linux内核上运行良好,但在较新版本上效果更差、或者根本不能用,那么你就碰见回归问题了。
按照报告问题中所说的报告你的问题,该文档已经包含了所有关于回归的重要方面。两个重点:
- 在报告主题中使用
[REGRESSION]
开头 - 抄送或转发到 回归邮件列表 -> regressions@lists.linux.dev
- 在报告主题中使用
可选但是建议:在发送或转发报告时,指明该回归发生的起点,以便Linux内核回归 追踪机器人
regzbot
可以追踪此问题:1
#regzbot introduced v5.13..v5.14-rc1
关于 regression
- 如果某程序/实例在原先的Linux内核上运行良好,但在较新版本上效果更差、或者根本不能用,那么你就碰见回归问题了。“无回归规则”不允许出现这种情况。如果偶然发生了,导致问题的开发者应当迅速修复问题。
- 也就是说,若Linux 5.13中的WiFi驱动程序运行良好,但是在5.14版本上却不能用、速度明显变慢或出现错误,那就出现了回归。如果某正常工作的应用程序突然在新内核上出现不稳定,这也是回归;这些问题可能是由于procfs、sysfs或Linux提供给用户空间 软件的许多其他接口之一的变化。但请记住,前述例子中的5.14需要使用类似于5.13的配置构建。这可以用 实现,详细解释见下。
make olddefconfig
- 注意
1
中所说的“实例”:即使开发者需要遵循“无回归”规则,但仍可自由地改变内核的任何方面,甚至是导出到用户空间的API或ABI,只要别破坏现有的应用程序或 用例。 - 还需注意,“无回归”规则只限制内核提供给用户空间的接口。它不适用于内核内部接 口,比如一些外部开发的驱动程序用来插入钩子到内核的模块API。
Reference
[1] A more detailed look at kernel regressions (from LWN.net)