LWN: Linux稳定分支状况以及相应测试

Linux内核之blktests简单介绍 Linux内核之blktests简单介绍blktests最近遇到了个补丁引起的blktests测试问题,顺便了解了下blktests。它的灵感来自于xfstests文件系统测试框架。链接: https://notes.z-dd.online/2024/06/10/Linux%E5%86%85%E6%A0%B8%E4%B9%8Bblktests%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D/最近遇到了个补丁引起的blktests测试问题,顺便了解了下blktests。 阅读详情
640点击上方蓝色字关注我们~



Testing and the stable tree

By Jake Edge
May 28, 2019


LSFMM


Sasha Levin在2019 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM)上有一个全员议题,是关于Linux stable tree(Linux稳定分支,通常会维护若干年,持续进行bug fix)的。Levin认为这里主要需要关注的是怎样进行测试。他希望能讨论一下如何进行更多更好的测试,来减少公众对stable tree的担心。


Levin主要强调了stable tree的两个特性:更新过程中的regression(质量退步)在所难免但是stable tree的regression会更少;所有的bug fix都会通过stable tree来发布给用户。他有时候需要找到那些没有被显式标注出来需要stable tree合入的bug fix,此时他使用了机器学习的方式来找到潜在的需要合入stable tree的bug fix patch。这些patch会被他亲自review之后,发到相应的mailing list上去。如果一周内没有人反对的话,这个patch就会被合入stable tree,再经过一周的review之后,就会最终发布给用户。


有人担心stable tree里的更改太多了,加入太多patch的结果,就可能会让stable tree变得不那么稳定了。他非常不同意,因为事实上并不是patch数量超过某个限值之后kernel就会不稳定。稳定性主要还是取决于对这些patch的测试情况。

640

Levin留意到Darrick Wong和Dave Chinner(他们两人都没有参见今年的LSFMM)都曾经表示对测试方面的一些担心,因此他一直在跟这两位合作来改善stable tree上的XFS和其他文件系统的测试。Luis Chamberlain(此前是Rodriguez)也在开发一个名为oscheck的新工具,能够在各种kernel配置环境下用xfstests来测试stable patches。目前oscheck只是针对XFS测试的,不过Levin很希望能扩展到其他文件系统,然后集成到KernelCI项目里去。


关于测试I/O(或者说存储设备)以及内存管理模块,他暂时也没有什么好方案。blktests框架可以用于测试storage,他还没有深入看过。此外他也从来没有听说过什么内存管理方面的测试。


Michal Hocko觉得Levin所说的那种利用机器学习决策来把那些最新开发出来的内存管理的patch移植到stable kernel上,这种方法不是很好。内存管理模块的开发者通常都会很仔细对patch判断是否适合stable tree,也就是说,Levin再挑一些进来的话,可能会引入风险。


他也认为并没有什么测试来暴露出regression(质量回退)现象;除非你在这些kernel上面测试真实世界里的各种任务,否则不可能暴露出问题。此前已经有过几次事件都是可疑patch被加入stable kernel了,所以他觉得自动选择patch的方案应该不要继续使用了。SUSE就曾经发现stable tree有时候会引入一些稳定性问题,他觉得每个patch一定要经过专家的思考来决定是否合入stable tree。


Levin赞同内存管理模块的开发者在标注哪些patch适合stable kernel这件事情上做的非常不错,去年他只额外增加了26个patch进stable tree。他也认为,用户可以理解stable kernel上有时也会出现一些问题,不过他们更怕的是kernel的大版本升级。只要改动很小的话,用户通常不是太怕。假如开发者只是把那些比较吓人的大改动放到新的kernel版本里面,那么用户就基本不敢升级了。现在还有用户在用2.6.32 kernel。


Rik van Riel问,如果发行版不用stable kernel的话,谁会用呢?Levin提到像Red Hat和SUSE这样的企业级发行版都没用stable kernel,不过Canonical, Andriod和其他一些公司都在用。


Steve French提到,已经有好几个文件系统都在定期进行xfstests测试了,包括ext4, Btrfs,SMB/CIFS。在他看来,可以接受对stable kernel加入更多patch,不过他想要一个机制,能够通知文件系统开发者需要针对某些patch重新运行一次regression test了。这样开发者就可以根据stable tree的维护者提供的分支信息来触发这样的一组测试了。


French还说,虽然文件系统开发者可以接受这样的模式,不过通常他们不知道什么时候stable kernel会发布。Levin觉得有需要的时候他可以延长release前的测试时间。此外现在已经有一些stable候选版本的自动便衣和自动测试了。French提醒,测试SMB/CIFS通常需要7个小时,不清楚ext4和Btrfs的测试时长,不过很可能是差不多量级的。


Ted Ts'o觉得还是要加强自动化处理。例如他目前是先看到stable release-candidate的通知邮件,然后自己手动下载编译kernel。等这些步骤完成之后,测试就很简单了,他有9个虚拟机来运行2到3个小时完成测试。然后需要人工来检查测试结果。如果全部都自动化了,或者能雇人来做这部分工作,那就不是什么问题了。自动化是最有可能的方案了。


Levin又提及了一下Chamberlain做的oscheck工具。Ext4和oscheck结合会很有用。他们也都希望能确定后续流程如何让更多文件系统也加入进来。只要对ext4等文件系统分别确定一个“例外清单”就可以了(例如xfstests就不需要运行)。这个例外清单还会随着bug fix、新功能等的开发进程而变化。Levin认为Chamberlain的oscheck能很好的处理这些情况。


Chris Mason好奇为什么Intel的O-Day automated testing没有用在这里呢?而要创建一个新的工具来做类似的事情?Levin支出Intel工具的代码只是部分开放的,所以他主要在跟完全open source的KernelCI合作,希望能最终集成进去。Chamberlain支出0-Day自动测试已经包含了xfstests,不过它不是很容易支持刚才提到的“例外清单”。


Levin认为目前看来,运行测试的资源并不缺乏。例如KernelCI既有资金,也有资源能进行测试。自动测试就更加便宜了,不过还是需要有专家来审查代码的,而在内核某些模块里找到有空的人来review代码是一件很难的事情。内存管理模块就是如此。所以能有自动测试来保证至少这个stable candidate版本是能工作的,也就很有价值了。


Mel Gorman觉得很难提出满足这种需求的测试方案。关于内存管理模块,一轮基本测试就需要一到两天,而更详细一点的测试需要三到四天,最完整的测试(严格意义上说还是不够完整的)就需要两周左右的时间了。这些测试还需要很多CPU时间,虽然他们都是全自动测试的。Levin觉得3天左右的测试时长还是可以接受的。


Gorman说,内存管理子系统这边很多错误会表现成performance问题,因此需要用各种方法来测试performance。因此测试结果的微小差别都需要注意,不像其他模块的测试集里只需要简单关注pass或者fail。完整的MMTests就需要三周的时间。Levin认为如果有方法能简单判断出来当前版本的质量回退“不大”,那就可以发布出去让用户开始使用了。


回到文件系统测试的话题,Ts'o认为管理“例外清单”会是一件很头痛的事情,不像是Chamberlain一个人能解决的问题。这些文件还需要有各种清晰的注释来讲清楚为什么这个case要被跳过。做这种测试就需要持续不断的投入人力了。Chamberlain也赞同,他目前只处理了XFS,需要其他人来处理其他文件系统的“例外清单”。与会者也讨论了一下是应该用一个白名单还是黑名单。Ts'o认为如果用白名单的话,人们忙起来就不会记得更新这个清单了,新的test case就可能迟迟没有加入这个测试。用黑名单的话,因为新的test case会报出错误,这个通常会引起大家注意,因此名单会更新的更加及时。French认为非常有必要能既有白名单又有黑名单。此外还需要能测试各种不同的kernel configurations。Levin提醒大家,既要用黑白名单,又要加上各种kernel configuration的组合,对每个kernel版本来说要测试的组合就太多了。没有人会直接在生产系统里使用Linus Torvalds发布的内核,除了在他们自己的laptop上做实验的时候。Amir Goldstein从其他测试项目上(例如Linux Test Project, LTP)得来的经验是测试程序本身也会有bug。LTP会标注它所能支持的最小kernel版本,不过仍然会碰到一些意料之外的错误。Chamberlain介绍了他的方法,就是先运行所有test case,然后记录一下哪些fail了、原因是什么。不过Ts'o认为这可能不是一个对所有情况都适用的方法,例如在某些kernel config情况下xfstests可能会让kernel crash,还有的情况是某些test case在一些特殊config(例如1KB的block size)情况下运行时间会过长。所以“例外清单”里面的每一项都需要详细记录。


因为时间差不多到了,Levin没法继续讲了,他本来想能跟参会者多了解一下大家都有些什么测试能愿意加入KernelCI的。只要能加入KernelCI的测试框架,stable team就能够让release candidate(待发布版本)进行更好的测试,在发布前检测出是否有质量回退。


全文完

LWN文章遵循CC BY-SA 4.0许可协议。

极度欢迎将文章分享到朋友圈 
热烈欢迎转载以及基于现有协议上的修改再创作~


长按下面二维码关注:Linux News搬运工,希望每周的深度文章以及开源社区的各种新近言论,能够让大家满意~


640?wx_fmt=jpeg

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04 所提供的图像具有高动态范围,事先进行了光度标定,用20Hz的帧率采集,分辨率为1024像素*1024像素;需要下载数据集dataset-room1_512_16和rgbd_dataset_freiburg1_desk。在一键安装ROS后,只需要再安装Pangolin即可,其他所有的需要都已经存在。用微型飞行器采集的视觉惯性数据集,包含双目相机和IMU同步测量数据及位姿的真值。第二条命令中的${ROS_PACKAGE_PATH}是自己文件的路径。其采用的相机和IMU传感器,在硬件上进行了时间同步。 阅读详情

相关推荐

KUKA机器人与S7-1200 PLC实现Profinet通讯配置步骤详解

在工业自动化产线中,PLC与工业机器人之间的高效数据交换是控制逻辑落地的关键。传统硬接线方案在信号点多时布线复杂、故障排查困难,而现场总线技术通过一根网线即可实现主从设备间的周期通讯。Profinet作为主流工业以太网协议,由S7-1200作为IO Controller主站,KUKA机器人作为IO Device从站,在WorkVisual与TIA Portal中完成设备组态、I/O映射及信号分配,即可替代成捆电缆,稳定传输启停、状态及报警信号。这一方案适用于汽车、3C、物流等行业的自动化产线,尤其适合需要扩

weixin_42519985的博客 251

blktests测试

使用场景: debug kernel 测试工具说明: 测试步骤: 1)git clone https://github.com/osandov/blktests.git 2)当有自定义的patch时<使能patch如下> cd blktests 将patch copy进来 patch -p1 < xxx.patch ``` ......

weixin_43010385的博客 1291

GitHub与GitLab中的Fork操作:从个人仓库到团队协作的完整指南

本文详细介绍了GitHub与GitLab中的Fork操作,从个人仓库到团队协作的完整指南。通过Fork操作,开发者可以在权限隔离的环境下自由实验,并通过合并请求机制保证代码质量。文章涵盖了Fork的具体步骤、本地开发环境配置、代码同步方法以及高级协作技巧,帮助团队高效管理代码仓库。

weixin_28829325的博客 306

LWN:Linux SVSM 项目!

关注了就能看到更多这么棒的文章哦~The Linux SVSM projectJanuary 30, 2023This article was contributed by Carlos BilbaoDeepL assisted translationhttps://lwn.net/Articles/921266/如果说传统网络像是只有少数几扇门的个人住宅,只有少数人拥有钥匙,那么基于云的环境就像...

Linux News搬运工 1153

[Ethernet in CANoe]4--CANoe工程中SOME/IP报文的详细介绍(二)

介绍了SOME/IP报文的SD报文(ServiceDiscovery),本片文章开始继续介绍SOME/IP报文。

汽车ECU自动化测试 1112

arcgis导出自身相交数据

今天接到一个客户需求,一份面文件,里面有好多元素是两两相交甚至是三个相交的,现在要把这些重叠部分提取出来,并且把相交部分的原始要素的名称也保留在字段中,也就是说名称这个会有好多个名称字段,如果两个要素相交那就是前两个名称字段有值,后面的为空,如果是三个要素相交,那么输出的这个要素就是前三个名称字段有值,后面的为空,嗯,这里也不太确定会出现多少个名称字段,这个需要依照数据来定。 这是原始数据,...

miaowumi92的博客 6787

LWN:Linux kernel要有几种test framework?

点击上方蓝色字关注我们~How many kernel test frameworks?ByJake EdgeJune 5, 2019Linux kernel的自测试框...

Linux News搬运工 1713

微信小程序 - 超详细小程序接入腾讯地图的完整流程,提供地图显示、IP 属地定位、地理位置名称、获取经纬度等超多功能示例(可一键复制并运行的功能源代码,详细的注释及常见问题汇总)小白直接上手!

微信小程序腾讯地图怎么接入,小程序项目中使用腾讯地图sdk,小程序中使用腾讯地图,微信小程序集成腾讯地图功能,微信小程序通过ip获取其地址、经纬度、详细地址,小程序使用腾讯地图跨域解决方法,微信小程序引入腾讯地图详细教程,原生小程序引入腾讯地图,微信小程序如何植入腾讯地图,微信小程序腾讯地图配置及使用详细教程,小程序植入腾讯地图SDK,微信小程序项目怎么用腾讯地图,微信小程序IP属地定位,获取当前用户位置名称,微信小程序如何使用腾讯地图获取用户的定位位置,在小程序中使用腾讯地图,实现定位,距离计算,实时搜索

🏆 前端领域优质创作者 8803

LWN:Linux早期岁月!

关注了就能看到更多这么棒的文章哦~The early days of LinuxApril 12, 2023This article was contributed by Lars WirzeniusDeepL assisted translationhttps://lwn.net/Articles/928581/我的名字是 Lars Wirzenius,Linux 最开始的时候我就参与其中。Li...

Linux News搬运工 1337

【Unity3D插件】XCharts插件完全教程《全网最全》-专栏文章目录

最近在做图表类需求功能的时候,发现了一款强大的Unity3D插件,也就是XCharts图表插件,功能强大,支持多种图表。官方介绍:一款基于UGUI的功能强大、简单易用的数据可视化图表插件。支持折线图、饼状图、饼图、雷达图、散点图、热力图、环形图、K线图、极坐标、平行坐标等十多种内置图表,以及3D饼图、3D金字塔、漏斗图、仪表盘、水位图、象形柱图、甘特图、矩形树图等拓展图表。内置丰富示例和模板,参数可视化配置,效果实时预览,纯代码绘制。支持折线图、柱状图、饼图、雷达图、散点图、热力图等常见图表。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 3194

DICOM图像知识:深入详解DICOM的层级关系

解析DICOM的四个主要层级:Patient(患者)、Study(检查)、Series(序列)和SOP(服务-对象对),探讨它们之间的关系、各自的唯一标识符以及在实际应用中的用途

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 3304

深入理解Linux网络技术内幕 P1-P2

细品

西门吹雪 539

深度解析:Android开发工程师(嵌入式系统方向)职位 - 技术需求、面试准备与发展路径

本文深入分析了嵌入式Android开发工程师的岗位要求和技术内涵。该职位需要掌握C/C++、Linux系统编程、硬件接口等核心技术,能够进行Android系统底层定制开发,包括HAL层实现、Framework修改、性能优化等工作。文章详细解读了岗位职责,梳理了必备技术栈,提供了针对性的面试问题与参考答案,并探讨了职业发展路径。这类岗位要求开发者兼具软件工程能力和硬件基础知识,适合在智能电视、机顶盒、车载系统等嵌入式领域发展的技术人员。

郑伟强dev的专栏 132

LWN:在Linux上用Waydroid运行安卓应用!

关注了就能看到更多这么棒的文章哦~Android apps on Linux with WaydroidJuly 19, 2022This article was contributed by Sam SlonikerDeepL assisted translationhttps://lwn.net/Articles/901459/用户经常会想在某种类型的系统上运行针对另...

Linux News搬运工 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

LWN:统一Linux 随机数设备!

关注了就能看到更多这么棒的文章哦~Uniting the Linux random-number devicesBy Jake EdgeFebruary 16, 2022DeepL ass...

Linux News搬运工 1143

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LWN:Linux 新的 EEVDF 调度器!

关注了就能看到更多这么棒的文章哦~An EEVDF CPU scheduler for LinuxBy Jonathan CorbetMarch 9, 2023DeepL assisted translationhttps://lwn.net/Articles/925371/内核的完全公平调度器(CFS, completely fair scheduler)管理着大多数 Linux 系统上运行的大...

Linux News搬运工 4370

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LWN:2023 Image-Based Linux 峰会!

关注了就能看到更多这么棒的文章哦~The 2023 Image-Based Linux SummitOctober 16, 2023This article was contributed by Luca BoccassiChatGPT translationhttps://lwn.net/Articles/946526/去年的第一次基于镜像的Linux峰会(Image-Based Linux S...

Linux News搬运工 818

【12】git获取linux kernel stable版本

在kernel的官网上有三种版本,mainline,stable,longterm mainline是主线版本,最新的, stable是稳定版, longterm是长期支持版 进入linux kernel官网 https://www.kernel.org/ 找到stable,点击browse 点击summary,拖到网页最后,就可以看到git 链接 复制链接, git clone git:...

linjiasen的博客 4345

LWN:实时Linux和嵌入式Linux的当前状态!

关注了就能看到更多这么棒的文章哦~The state of realtime and embedded LinuxBy Jonathan CorbetApril 25, 2024OSSNAChatGPT translationhttps://lwn.net/Articles/970555/Linux 以存在于众多类型的系统中而闻名。其中服务器和数据中心确实获得了大量的关注,而今年又总是被称为 Li...

Linux News搬运工 484

LWN:滚动发布的稳定版内核!

关注了就能看到更多这么棒的文章哦~Rolling stable kernelsBy Jake EdgeOctober 6, 2021OSSNADeepL assisted translat...

Linux News搬运工 535

LWN:2022 基于映像文件Linux峰会!

关注了就能看到更多这么棒的文章哦~A report from the 2022 Image-Based Linux SummitNovember 3, 2022By Luca Boccassi, Lennart Poettering, and Christian BraunerDeepL assisted translationhttps://lwn.net/Articles/912774/第一届...

Linux News搬运工 613

阿里内核月报2014年3月

目前Linux内核急需的一项功能是在线打补丁的特性。此前被Oracle收购的ksplice一度是Linux上唯一的解决方案。但是在被Oracle收购后,ksplice就闭源了,并且成为了Oracle Linux的一项商业特性。而目前可以拿到的最新版本的ksplice仍然仅仅停留在0.19上,而可以直接使用的内核版本则是2.6.26。对于更新的内核版本则还...

weixin_34414650的博客 609

Linux内核新动作!

Linux内核是系统的底座。对于所有的上层技术而言,内核是基石,是支柱。内核的性能、稳定性乃至技术创新方向,都会对整个Linux生态产生重要影响。这就是为什么要不遗余力去重视Linux内核的维护。问题的症结在于,向后移植是一项繁重的工作,将维护负担交给无薪志愿者,倦怠在所难免。所以有这样一种声音:向后移植的负荷应该让从长达6年的服务中获利的公司承担才合理。

IT界那些事儿 2301

LWN:2022年嵌入式Linux的进展!

关注了就能看到更多这么棒的文章哦~The 2022 embedded Linux updateBy Jake EdgeJuly 6, 2022OSSNADeepL assisted translationhttps://lwn.net/Articles/899742/Embedded Linux Conference(ELC)的一个常规内容是会议组织者 Tim Bird ...

Linux News搬运工 774

LWN:运行fstests的最好方式!

关注了就能看到更多这么棒的文章哦~Best practices for fstestsBy Jake EdgeJune 7, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/897061/作为当天早些时候关于测试所面临的挑战的会议的后续,Josef Bacik 在 2022 年 Linux 存储、文件...

Linux News搬运工 426

LWN:Linux图形栈简介,第一部分!

关注了就能看到更多这么棒的文章哦~The Linux graphics stack in a nutshell, part 1December 19, 2023This article was contributed by Thomas ZimmermannChatGPT translationhttps://lwn.net/Articles/955376/Linux 图形开发者经常提到“现代”L...

Linux News搬运工 916
上一篇: LWN:madvise()只能对本进程做,没想过控制别的进程吗?
下一篇: LWN:再次提交fs-verity方案!最终版?!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值