LWN:移除kthread freezer!

关注了就能看到更多这么棒的文章哦~

Removing the kthread freezer

By Jake Edge
June 23, 2023
LSFMM+BPF
ChatGPT assisted translation
https://lwn.net/Articles/935602/

2023 年 Linux 存储、文件系统、内存管理和 BPF 峰会的最后一天,由 Luis Chamberlain(他还主持了第二天的全体会议)主持了三个独立的会议。其中之一是关于 kthread-freezer-removal 工作的文件系统会议。kthread freezer 旨在帮助文件系统冻结其状态,以便 suspend 或休眠(hibernate)整个系统,但至少从 2015 年以来,就一直有人计划移除这个功能。一年后的情况也没有多大改变,2018 年的 LSFMM 会议上,Chamberlain 接手了 Jiri Kosina 的移除工作;今年,Chamberlain 回来继续推动其进展。

他开始时说,让文件系统在准备 suspend 系统之前冻结文件系统状态,在 Linux 上多年来一直存在问题,这可能会让一些人感到惊讶。目前没有统一的机制来冻结文件系统,如果有大量的 I/O 操作正在进行,那么在 resume 时可能会导致系统 hang,这不会是用户想要的结果。

问题出在 kthread-freezer API 上,该 API 用来帮助在 suspend 操作期间停止进行中的 I/O,但它的语义有些不严谨,使用方式也比较随意。上次在 LSFMM 讨论 kthread-freezer 问题时,控制组(cgroup)冻结在内核中就出现了问题,但他想知道现在的情况如何。Aleksa Sarai 表示已经 fix 了这个问题,但另一位与会者补充说,这需要一个新的 cgroup 文件系统。Chamberlain 表示,在冻结过程中还存在与自动挂载工具(automounter)冲突的问题,但会场上没有人似乎了解这方面的情况;“那么我们都需要记住这一点”。

2d411d951f4ab35f1b8f833ed6a2fd4b.png

[Luis Chamberlain]

有一些时序问题需要解决。最终可能需要构建一个文件系统 superblock 的有向无环图(DAG, directed acyclic graph),以便按正确顺序进行冻结和解冻操作。他说,Al Viro 曾感叹原来实现的 LOOP_CHANGE_FD ioctl()命令,从而 Fedora 的 live 安装方式可以直接跳转到新安装的文件系统;但这在遍历 superblock 时破坏了预期的顺序,因此这些系统的 suspend 可能会出现问题。RAID 也可能引入时序方面的异常。人们假设在遍历 superblock 时,正向和反向迭代的次序是一致的;这很可能在大多数使用笔记本电脑和移动设备的使用场景中是可行的,他们是主要的在进行 suspend 操作的用户。

Chamberlain 想知道是否需要一种机制来通知用户空间应用程序即将进行 suspend 操作,以便给它们一些时间来安静下来。Ted Ts'o 说 Windows 中已经有这种通知机制,但应用程序需要花一定的时间才能安静下来;如果这个过程无法完成,suspend 操作将继续进行而不管它们。实现这种通知并不难,“那只要使用 D-Bus 或类似的东西做管道就行”。

处理 network block 设备是另一个问题领域,Ts'o 说这个问题已经被提出 8 年了,但是“每个人都说‘是的,这很难’,然后都悄悄退后了”。David Howells 指出,FUSE 文件系统也增加了这个问题的复杂性,因为它既有内核空间的部分,也有用户空间的部分需要被冻结。Amir Goldstein 指出,checkpoint/restore 的开发者已经在处理这些复杂情况,这可能成为一个模型。

Lennart Poettering 说,systemd 已经有了一套基础设施用于进行用户空间的通知。如果应用程序希望接收通知,它们可以从 systemd 中获取,并在需要时有几秒钟的反应时间。他指出,目前的 suspend-then-hibernate 顺序是在 suspend 模式下经过一段时间后唤醒所有用户空间的工作,然后进行 hibernate,这个做法是“很愚蠢的”。因此,目前正在进行的一个开发工作,就是使用 cgroup freezer 把除了跟切换到 hibernate 模式的小部分内容之外的所有其他用户空间工作都保持冻结状态。Jan Kara 表示,内核仍然需要对文件系统进行解冻,以便让监测(overseer)进程可以检查电池状态等。

Chamberlain 表示,听起来用户空间方面的问题在很大程度上已经解决了。他想讨论在文件系统中移除 kthread-freezer 调用后的下一步。他会使用 Coccinelle 语义 patch 来进行这个移除操作。他最新的 patch 是用于替代 kthread freezer API 的自动内核 freeze 和 resume 代码的核心部分;之前今年 1 月份的 RFC patch set 使用 Coccinelle 规则移除了十几个文件系统中的相关代码。

他怀疑是否有必要继续在内核的其他部分中来移除对这个 API 的使用。他说,该 API 是为了允许文件系统停止进行中的 I/O 操作,所以在其他地方使用的话可能是错误的。Jeff Layton 说该 API 在 NFS 中被使用,他并不认为是正确的做法,所以他打算提供帮助从 NFS 中移除 kthread freezer。Sarai 说 cgroup v1 仍然使用 kthread freezer,他不知道为什么没有与 cgroup v2 进行类似的更改;在完全移除 API 之前,需要讨论一下。Howells 指出,所有网络文件系统都会存在 Layton 关注的一些问题。Chamberlain 总结说,可以逐步进行这个移除工作,挨个处理文件系统和子系统。

请注意,此会议的视频名称被错误标记成了 Chamberlain 主持的 iomap-conversion-status 会议,其实该会议是紧随其后的,并且不出意外,该会议的视频标题为“Removal of kthread freezer next steps”(移除 kthread freezer 的下一步)。

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

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/60420.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google 后开发的 Carbon 真的会取代 C++ 吗?

【CSDN 编者按】Carbon 真的能成为 C 的替代品吗?目前我们只能猜测,但请不要忘记 Swift 或 Kotlin 等语言的诞生。 原文链接:https://semaphoreci.com/blog/carbon 未经授权,禁止转载! 作者 | Manuel Rubio 译者 | 弯…

email邮箱注册,5分钟教会你这些方法大全

不同的人,根据需求不同,可以注册诸如免费邮箱、VIP邮箱、企业邮箱等等。我们可以通过邮箱品牌之一的TOM 邮箱为例,5分钟教会大家如何注册这3类邮箱。 一、尊贵VIP邮箱注册方法: VIP邮箱账号注册可支持3-5位超短靓号,…

电子邮箱免费注册,比较好用的电子邮箱怎么注册?如何申请?

电子邮箱免费的很多,我们常用的163、TOM、QQ等,如果公司用,就要用企业电子邮箱了。申请企业电子邮箱,注册3年用6年,注册5年用10年,这是在网上看到TOM企业邮箱的优惠,以下是企业邮箱总结。 TOM企…

个人邮箱怎么注册呢?个人邮箱申请能绑定微信收发邮件吗?

个人邮箱怎么注册呢?个人邮箱申请能绑定微信收发邮件吗? 大多数职场人都在偷偷的努力着 学习新的方法,通过更高效的方式完成工作! 在新的时代下,唯一不变的就是瞬息万变 脑部了一万种功成名就的场景,不…

2022还不知道登陆邮箱账号怎么填写?个人邮箱登录注册流程看详解

今年入冬以来,我国多地散发新冠肺炎疫情。浙江三地同日报告新增、满洲里大规模核酸共检出阳性431例、上海新增本土1例。“奥密克戎”以惊人的速度传播,目前已至少在38个国家和地区出现。 疫情在即不仅需要配合日常防疫工作还要做好个人的防护&#xff0…

免费注册 Proton.me电子邮件教程

免费注册 Proton.me 1.登录自己的 Protonmail 帐户。 2.访问此页面,单击 “转到设置” 选项,在左侧边栏中,选择 “身份和地址”。 3.会在此页面顶部看到 proton.me 字样。 4.单击 “激活用户名 proton.me ” 按钮。 5.申请成功后&#xff…

Python 简单编写一个注册邮箱

金秋九月,又是开学的新的一学期,大家见到新同学新同事一定要问好,不要社死!!! 我们步入正题: 编写一个简单的注册邮箱程序 我在编写这个小程序的时候里面,有的代码是简化了: 还是那句话: 编写程序前,先理清思路&#x…

测试用例:邮箱注册

思维导图: 测试用例: 用例编号分类所属等价类测试描述输入数据预期结果实际结果测试人员测试时间000001邮件地址有效6-18个字符,可使用字母、数字、下划线,须以字母开头Jianghe_123456可用提示:恭喜,该邮件…

Python启蒙——检测邮箱是否有新邮件,并邮件通知(二)

承接上回,知道了新邮件返回的消息后,可以更近一步,来实现发邮件。 发邮件我们要用到SMTP的服务,来发送邮件。 发送邮件一般有收件人地址、抄送人地址、邮件主题、邮件内容等内容,从SMTPLIB这个类的解释和例子如下&am…

教育邮箱怎么注册申请,教育电子邮箱注册小妙招

临近秋季开学很多小伙伴咨询学校邮箱的问题,学校是否会给学生配备邮箱,学校都用什么邮箱? 最近我的妹妹刚拿到录取通知书,里面写着让她办理一个教育邮箱,她不太知道什么是教育邮箱,还给教务处的招生处老师…

大话Stable-Diffusion-Webui-将stable-diffusion-webui接入微信群(一)

文章目录 效果原理WeChatRobot安装克隆项目安装pc端微信安装 WeChatRobot配置 WeChatRobot接入sd的文生图apisd配置WeChatRobot中接入sdconfig.yaml增加sd的配置robot.py开发代码robot.pyconfig.yaml效果 原理 通过一个玩转微信的开源项目

AI智能机器人,在这里也可以体验~

“ 大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 ” 现在是:2023年2月17日00:14:42 前言 最近AI智能chatgpt特别的火,相信好多人都已经体验过了,之前我的群里也接入过,奈何总是收到警告和…

python中成语接龙游戏_Python实现成语接龙

这是一篇用Python实现成语接龙小游戏的具体开发教程。Python实现这个功能非常容易,以下分为两个版本,一个是简易版,能够实现基本的功能。还有一个是拓展版,是在简易版上进行拓展,功能更为复杂且完善。 这个可以应用在很多方面,比如说聊天机器人,而且还可以结合itchat这个…

AI绘画结合GPT 把Ai绘画与摄影玩明白

一、绘画与摄影有什么关系? 绘画和摄影是两种不同的艺术形式,它们都以其自身独特的方式捕捉和表达现实。在某些方面,它们是相互联系的,而在其他方面,它们又有所不同。​ 相似之处:绘画和摄影都是创造性的…

电脑用户名中文改英文步骤总结

背景:在单位领了两台新电脑,脑子一热用户名直接设置成中文名字了,后来在装许多环境的时候都出现中文乱码、路径错误等情况,因此需要改成英文账户名。 步骤: 先修改本地的账户名。打开控制面板并点击用户账户&#xf…

「ChatCat」创建你的专属机器人

没有OpenAI账号,不能科学上网,还没找到合适工具的朋友可以看过来。 【ChatCat】可以创建自己的应用,自己使用/供其他人使用;也可以简单粗暴直接使用官方ChatGPT;还可以生成山水图配文案,你想怎么用&#x…

找了程序员男朋友,她们是这样报喜的...

最近收到好多女生在面向对象脱单的消息,继续安利面向对象给还单着的盆友们。如果你身边有单着的朋友或同事,请帮忙推荐哦~ 还不了解面向对象? 面向对象是一个真实、高效的相亲平台,为单身青年服务。目前,人…

当你交了一个程序员男朋友后,会变成什么样……

当你交了一个程序员男朋友后,会变成什么样…… 程序员,是一种职业,但由于网络上关于程序员的段子络绎不绝,导致这一职业在大家心中也有了不一样的颜色。 比如,很多人会认为和程序员交往一定是件特别的事情&#xff0…

跳槽也不一定涨薪,2023,别再裸辞了····

马上又到一年一度的“金三银四”,很多蠢蠢欲动但还在犹豫的职场打工人,大概心中都有一个疑问:经历了疫情三年寒冬的互联网, 真的会在2023年这个春天打响复苏第一枪吗? 如果说“求稳”与“苟着”是2022年职场的主流心态&#xff0…