https://lwn.net/Articles/737666/ @玖一

Kernel Regression追踪有好几年的空白期,直到一年之前Thorsten Leemhuis接手这项工作才补上这段空白。2017年布拉格内核峰会和Maintainer大会有2个关于Kernel Regression追踪的讨论,本文覆盖第一个。

讨论就Leemhuis追踪Kernel Regression的现状和困难展开。Leemhuis说他是德国一家大型计算机杂志的新闻工作者,之前没有从事过Linux社区相关工作。他看到Rafael Wysocki放弃追踪Kernel Regression,认为自己很适合,就开始利用业余时间来做这项工作。他本就知道这是一项艰难的事情,而现实比他预想的还要残酷。

为什么这项工作这么艰难呢?Leemhuis认为最主要的问题在于没有人来告诉他出现了Kernel Regression,他需要自己去追踪。这就意味着他必须要去挖掘各种邮件列表。Wysocki认为随着信息源的增加,情况比几年前更糟糕,一个人无法跟踪那么多信息。Leemhuis继续讲述说很多Kernel Regression在他还没注意到的时候就已经被修复,也没有人告诉他修复的进度,这些都需要他自己去挖掘。他曾经要求开发者们在讨论Kernel Regression的邮件中添加特殊的标记,但是非常不幸,没有人这么做。的确,要改变开发者已经建立的工作流来适应新的机制非常困难。James Bottomley补充说Maintainer一般不愿意把bug认定为“Regression”,因为Regression需要尽快修复,这给Regression追踪带来更大的困难。

针对这个问题,Leemhuis提议可以为Kernel Regression创建一个专门的邮件列表,Wysochi和Laura Abbott表示同意,并认为需要完善文档来让用户知道如何更好的报Regression。

接下来大家讨论了是否有必要追踪主干以外内核版本的Regression。Herrenschmidt提到大多数bug report来源于发行版而不是主干。那些来自于像Fedora这样与主干很接近的发行版的report是有用的,而来自于企业版内核里的bug report则并没有太大价值。而Bottomley则认为只需要跟踪主干Regression,因为Linus Torvalds主要对主干Regression感兴趣,目前也没有更多的资源来追踪发行版内核的Regression。也有人提出可以寻找志愿者来追踪旧版本的Regression,但是大家普遍认为没有人愿意做这个工作。Arnd Bergmann还提到Linaro最近为linux-next的Regression做过很多测试,但Leemhuis表示他现在只对主干的Regression有兴趣。

Leemhuis继续提到,Wysocki以前使用内核Bugzilla来跟踪Regression,但使用Bugzilla会带来很多额外的开销,开发者貌似不太喜欢使用它,因此Leemhuis选择使用邮件列表来追踪,他疑惑这是否是个错误的决定。Wysocki回答说他当时使用Bugzilla是因为Bugzilla可以提供相关的讨论信息。Ts’o则认为真正的问题在于Torvalds不为kernel单独提供一个bug跟踪列表,信息分散到各个开发社区导致收集困难,内核Bugzilla不完美,但是它的优点在于已经存在并且可用。Wysocki补充说他们需要给那些报Regression的开发人员提供一个明确的入口点,让他们知道问题应该发到哪里。Takashi lwai表示对于发行商来说,他们最需要一个Regression列表,但是现在没有地方提供这样的列表,所以发行商必须历经耗时的查询来获取Kernel Regression情况。

于是话题又转到Regression是否会影响各发行商选用的内核版本。Abbott说Fedora的大致基调是使用新内核,但也会根据当前的Regression情况来决定具体采用哪个内核版本。比如说一个内核版本带有明显的英特尔或AMD显卡Regression,他们就不会采用,而那种USB集线器的问题则没有太大关系。BenHutchings说在Debian情况也是类似。Lwai说openSUSE Tumbleweed版使用最新内核,Jiri Kosina补充说SUSE会跟踪那些带“Fixes”标签的Patch,如果需要,这些bug fix会被backport到他们的内核中,减少openSUSE内核的Regression问题。

讨论接近尾声,有人再次提到对于大部分用户来说,报Regression非常困难,他们不知道问题应该发送到哪里,也获取不到更多的帮助信息。kernel Bugzilla问题尤为严重,很多bug发在内核Bugzilla并不合适,但是谁也不知道应该发去哪里。Ts‘o认为应该让Bugzilla包含所有内核的bug,子系统Maintainer只要去处理相关bug就可以。这个问题还没有结论,但是如果没有相关的策略,用户们会长期处于这种困境中。

Abbott最后给了一个建议,发送邮件报bug的用户应该收到一个自动回复,提醒他们这个问题只发送给邮件列表不会有太多人阅读,也就得不到相应回复,并且要告诉他们应该怎么更好的报bug,这个建议被大家广泛认可。