0%

Linux kernel regression

Linux Kernel Regression

引入

总建议

  • 我们拒绝出现回归”是Linux内核开发的首要规则

  • 如果某程序在原先的Linux内核上运行良好,但在较新版本上效果更差、或者根本不能用,那么你就碰见回归问题了。

  • 按照报告问题中所说的报告你的问题,该文档已经包含了所有关于回归的重要方面。两个重点:

    1. 在报告主题中使用[REGRESSION]开头
    2. 抄送或转发到 回归邮件列表 -> regressions@lists.linux.dev
  • 可选但是建议:在发送或转发报告时,指明该回归发生的起点,以便Linux内核回归 追踪机器人regzbot可以追踪此问题:

    1
    #regzbot introduced v5.13..v5.14-rc1

关于 regression

  1. 如果某程序/实例在原先的Linux内核上运行良好,但在较新版本上效果更差、或者根本不能用,那么你就碰见回归问题了。“无回归规则”不允许出现这种情况。如果偶然发生了,导致问题的开发者应当迅速修复问题。
  2. 也就是说,若Linux 5.13中的WiFi驱动程序运行良好,但是在5.14版本上却不能用、速度明显变慢或出现错误,那就出现了回归。如果某正常工作的应用程序突然在新内核上出现不稳定,这也是回归;这些问题可能是由于procfs、sysfs或Linux提供给用户空间 软件的许多其他接口之一的变化。但请记住,前述例子中的5.14需要使用类似于5.13的配置构建。这可以用 实现,详细解释见下。make olddefconfig
  3. 注意1中所说的“实例”:即使开发者需要遵循“无回归”规则,但仍可自由地改变内核的任何方面,甚至是导出到用户空间的API或ABI,只要别破坏现有的应用程序或 用例。
  4. 还需注意,“无回归”规则只限制内核提供给用户空间的接口。它不适用于内核内部接 口,比如一些外部开发的驱动程序用来插入钩子到内核的模块API。

Reference

[1] A more detailed look at kernel regressions (from LWN.net)

[2] 报告回归问题 — The Linux Kernel documentation