加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网_ASP源码网 (https://www.1asp.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Linux内核测试现状揭秘

发布时间:2019-01-22 04:08:23 所属栏目:建站 来源:邢万里 马涛
导读:副标题#e# 内核测试的现状 新的内核总是会定期发布出来,但是其实大家并不是十分了解内核是如何被深入测试的。那么这里可以提前告诉大家,内核主干有可能并没有做过充分的测试,而稳定内核可能会更少。。。 So what is going on there? Is stable kernel re

Linaro目前正在为谷歌开发一个使用内核自检(kernel self-tests,缩写kselftest)和Linux测试项目(Linux Test Project,缩写LTP)来测试稳定的内核项目,这些测试会针对每个稳定的发布版本来进行。自检测试的确能发现bug,但编写这些自检测试的人可能并不是引入大多数错误的人。所以自检测试还只是一个开始,显然Linaro还需要增加更多的测试。

所以综合来看,版本发布者一般都只是关心,合并到稳定版本里的修复(fix)是否是正确的,但是他们只是从稳定版本中摘出修复(fix)然后放到自己的内核中做测试,对稳定内核本身的测试是非常有限的。于是有人建议可以由Linux基金会与Canonical,SUSE,Red Hat等公司一起组建一个合作项目,大家一起贡献一部分机器同时形成一套测试套件来进行稳定内核的测试。

测试的不断改善

例一:0天内核测试服务(0-Day kernel test service)。这个服务也不仅仅是构建和引导测试(build-and-boot tests),还包括一些性能测试。 kernelci.org项目也正在对许多不同的硬件进行构建和引导测试(build-and-boot tests),这些都是非常有价值的,但他们没有做任何真正的功能性的测试。当然事情肯定会变得越来越好,大家不都是说“有比没有好么”。

例二:LTP(Linux Test Project)。它可以测试很多东西,但也有很多地方它并不会去测试。它会被一些发行版使用,然后也肯定能在里面发现一些bug,但很明显我们需要更多更好的测试套件。

例三:性能测试(benchmark)和模糊测试(fuzzing)。会上还讨论了稳定内核的模糊测试。模糊测试上游内核是一种最好的选择,因为所有问题的修补都在那里,但它仍然可以在发行版的内核中发现问题。目前syzkaller fuzzer已经可以针对它发现的问题自动生成小的测试用例,大家也觉得这些应该被加入自检测试集。虽然有人提到一些BUG只在Kernel Address Sanitizer(缩写KASAN)下才会出现,但这些测试在那些没有被配置KASAN的内核上运行的时候是可以简单地被跳过的。除了找BUG的测试之外,内核还需要更多的性能测试来发现性能退化(performance regressions),有人提到可以用Mel Gorman的MMTests作为“kbench”这一性能测试套件的基础,只是这个套件对应的文档很少了,所以我们需要在内核文档目录中建立一个测试套件目录作为一个开始,但任何复杂的性能测试显然需要更加深入的文档。

例四:基准数字(single number)。有人提议说,如果我们有一个性能测试然后给出一个基准数字,而我们可以基于这个数字来判断性能是否有退化就完美了(比如BogoMips背后的想法),当然有另外一些人会质疑是否真的存在这样的测试系统。

例五:自我测试(self-tests)。越来越多的自我测试,正在被添加到内核主线中,但是稳定的内核却不会从中受益。有些人正在使用较老的内核进行最新的自我检测,于是有人提议也许自我测试本身应该被移植到稳定的内核树中。

例六:神经网络训练。随着BoF的结束,Levin要求发行版的维护者将他们正在使用的补丁推向稳定的分支中去。一般发行版中的问题在稳定内核中也一定存在。他最近一直在努力训练一个神经网络来识别适用于稳定内核的补丁,这引起了一些笑声,但他说结果是“出人意料的好”。

内核测试的一些其他声音

Greg Kroah-Hartman是稳定内核的维护者,他没有参加BoF但是其实对BoF的讨论内容也有兴趣。于是第二天当Levin在一个小型会议中概括总结BoF的讨论结果的时候,Greg给出了他的一些意见。

(编辑:安卓应用网_ASP源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读