LWN:关于内存管理部分开发流程的变动!

TwinCAT3与Matlab Simulink集成开发:如何快速生成和调试TcCOM模块 本文详细介绍了如何将TwinCAT3与Matlab Simulink进行深度集成,实现从控制算法模型到实时TcCOM模块的高效开发。通过环境搭建、模型配置、代码生成、系统集成与调试的完整流程,工程师可以快速将Simulink算法部署到倍福实时控制平台,大幅缩短开发周期并提升可靠性。 阅读详情

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

The state of memory-management development

By Jonathan Corbet
May 10, 2022
LSFMM
DeepL assisted translation
https://lwn.net/Articles/894378/

2022 年的 Linux 存储、文件系统、内存管理和 BPF 峰会(LSFMM)是三年来 Linux 内存管理开发者第一次线下聚会。在第一天结束时由维护者 Andrew Morton 主持的会议上,这些开发者们讨论了内存管理的开发流程。虽然整体的管理结构仍将保持不变,但这里还是会有不少变动。

Morton 首先表示,他终于将他的部分工作流程转移到了 Git 上,这是他多年来一直在抗拒的一个变动。在 kernel.org 上将会有三个 git tree,用来存放目前正在开发的 patch。其中的 "hot fixes" tree 正如其名用来放置 hot fix,它针对不同版本会有不同的 branch,用来对 upstream 了的代码进行重要的 fix。"stable" tree 存放的是准备在下一个合并窗口进入 mainline 的内容,而 "unstable" 则用来放置那些不太成熟的内容。

所有这三个代码 tree 都会被直接混在一起形成 -mm tree,然后送入 linux-next。Morton 明确表示,他仍然会在自己的工作流程中尽可能多地使用 Quilt,他认为在某项工作仍在不断的变动的时候,使用 Quilt 会更加灵活。不过他也说过,"如果有必要",他愿意从开发者的 Git 来做 pull,但他仍然认为这种模式不可行。他说,从来没有哪个 patch set 在通过 memory-management tree 的时候能够毫无改动的,所以 Git 的 immutable model 并不适合这里的情况。他说,他的管理政策将是 "stabilize forever",一直到 patch 已经可以进入 stable tree,这时它们将被合并到一个 branch 之中然后等待 upstream。

5e17a587ac43d8ab84e746343dcf3124.png

unstable tree 目前只是作为一个 Quilt queue,尽管它最终也会采用 Git 的形式。当完成切换时(可能是在 5.19 周期),他不希望开发者使用这个 tree 来作为开发的基础。相反,所有的 patch 都应该是针对某一个 upstream 版本的,最好是 previous-rc3。每个 patch 一系列都会被保存在一个单独的 branch 中,即使只涉及一个 patch。这样一来显然会出现许多名字很长的 branch;它们将以 mm-unstable- 开始,并包含 patch 的 subject。他说,当开发者发送后续 patch 时,就需要提供目标 branch 的名称。

stable tree 是不可以改动的,意味着它永远也不会进行 rebase。他说,这是一个很好的想法,但只有在有内容可以放进去的情况下,它才能发挥作用。他一直在寻找有哪些内容可以放到这里,但目前还没有看到什么准备好的内容;一切都在等待 review 和/或 update。如果希望使这个过程发挥作用,开发者就需要更快地把内容确定下来。他计划更加积极地催促开发者,当然通常是在私下里进行,来帮助推动事情进展。

Stability and review

Michal Hocko 说,似乎有很多 patch 进入 -mm 树的时机都太早了。这导致开发者的注意力被转移到下一个看起来很耀眼的东西上。Morton 回答说,他已经开始忽略那些新的 patch 的第一个版本了,部分原因就是如此。但是,他补充说,任何认为合并到 -mm 就意味着他们的工作已经完成的人,都是没有经验的。他试图尽可能为这些人提供指导。

David Hildenbrand 建议 Morton 在接受 patch 进入-mm 之前就应该对其进行更多的 review;目前有很多带有破坏性的 patch 也进来了。他说,总的来说,社区生成代码的能力似乎远远大于 review 代码的能力。莫顿回答说,他不想因为缺乏 review 而阻止 patch 进入-mm;他宁可让这些工作能发布出来从而开始进行测试。但是,如果没有完成相应的 review,他是不会让这个工作继续走到 mainline 去的。

Dan Williams 建议,如果能做得更加透明的话就会更有帮助了;如果开发者可以看到 queue 的状态,以及哪些 patch 正在等待 review,他们可能会感到有动力去帮助推进。Morton 回答说,这些信息现在已经有了。但是,他确实是靠自己来决定是否将 patch 移到 stable tree 中的,他也希望改变这种情况。他认为这个决定应该更透明、更快地做出。目前,他的计划是公开发布他的计划,看看是否有反对意见;但他并不打算在将工作转移到 stable 版之前要去等待有明确的反对意见。

他希望看到更多的人关注走向 stable 的过渡,他说这是 "一件大事"。patch 不需要完美才能被推进 stable;毕竟,一般还有几个月的时间(包括了开发周期的剩余时间,以及 patch 合并后的下一个完整开发周期)来让事情达到 production quality。因此,他的标准是,Linux 是否想要这个 patch,以及它是否已经达到了往下走的基本条件。

Morton 对他是否应该发布 stable tree 提出了一些疑虑。他不希望开发者们以它为基础来做 patch,但如果这个 tree 被公布出来的话就肯定会诱使大家这么去做。

有提议说写一些文档(尤其是相应的判定标准)(尤其是标准)告知大家如何才能把 patch 合入 stable tree,但 Mel Gorman 建议不要这样做。如果公布了一套规则,开发者就会不可避免地试图利用这些规则。他还说,在 non-rebasing 模式下维护 stable tree 并不特别重要。memory-management patch 往往不怎么会发生 merge conflict,所以一般来说 rebase 不太可能给开发者带来问题,尤其是在开发周期的早期阶段。

然后谈到了另一个话题,Morton 说他实际上计划创建第四个 Git tree,其中会包含 kernel-wide patch。这个 tree 总是从 Quilt 队列中生成的,这里应该不会放跟 memory-management 有关的任何内容。Morton 仍然在处理其他子系统的许多 patch,所以很容易理解他为什么想要建立这个 tree。

Submaintainers

Hocko 提出了内存管理子系统中子维护者的问题。目前有几部分内容是由其他开发者的 Git tree 所处理的,而且经常会被直接推送到 mainline 上,这一点他不太满意。他说,这最终导致了内存管理子系统中的分裂,使人们很难对相关进展有完整的了解。他说,可能确实有必要来设立子维护者,但是他们的 tree 应该被拉到 -mm tree 里面。Morton 认为这个方案应该是可行的,他可能会把这些 tree 直接 pull 到 unstable tree 去。

Vlastimil Babka 问道,他的 git tree 里面包含了对 slab allocator 的修改,是否也应该通过-mm 来合入。Morton 回答说,目前的流程仍是有效的,Babka 应该还是直接向 Linus Torvalds 发送 pull request。他说,把他加进来也不会为这个过程增加任何价值。但他指出,slab patch 往往是独立于其他所有内容的。如果希望把内存管理部分的核心内容来分解成很多部分的话,反而会是一场噩梦。

不过,Hocko 指出,即使在内存管理子系统的核心代码中,各领域之间的 conflict 也很少。也许值得让更多的子维护者来负责相应的领域。Morton 表示愿意尝试一下,看看是否比目前的流程更有效,但他说他想等目前的变动稳定一段时间。Hildenbrand 补充说,新的开发者往往不知道该把内存管理的 patch 发到哪里,而 get_maintainer.pl 脚本给出的结果在这一点上经常也没有什么帮助。定义子维护者可能会在这方面有所帮助。他自告奋勇来承担 memory hotplug 的 submaintainer 这一角色。

此时天色已晚,与会者们都很疲惫了。大家在一些细节上还有一些讨论,之后会议很快就结束了。

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

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

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

0442bfe898d9cda382937cdf905d314b.png

别再被手机厂商忽悠了!一文看懂光学变焦、数字变焦和混合变焦到底有啥区别 本文深入解析手机摄影中的光学变焦、数字变焦和混合变焦技术,揭示它们的工作原理和实际效果差异。光学变焦保持无损画质,数字变焦依赖算法放大,而混合变焦结合两者优势。帮助消费者识破厂商宣传,根据实际需求选择最适合的变焦方式,提升拍摄质量。 阅读详情

相关推荐

数字化转型是什么?核心又是什么呢?

01到底什么是数字化转型? 这时候你或许要问笔者了,既然你说使用新兴技术不是数字化转型,那使用新的商业模式总该是数字化转型了吧?你比如阿里巴巴,作为我们中国人最熟悉的开展电子商务的公司,它可以说是新的商业模式最大的开创者了:阿里巴巴是世界上最大的零售商,却没有任何一家实体店和任何库存;再比如优步(Uber),我们非常熟悉的一个线上打车平台,它可以算是世界上最大的出租车公司了,但是它不拥有一辆出租车。还有近些年来,我们经常使用的的旅游房屋租赁社区爱彼迎(Airbnb),它可以为消费者提供多样的住宿信息..

weixin_58342023的博客 4043

LWM2M协议报文怎么解析

LWM2M (Lightweight M2M) 协议是一种用于 M2M (Machine to Machine) 通信的协议,常用于 IoT (Internet of Things) 设备之间的通信。 LWM2M 协议报文由一些固定的字段和可选的字段组成,具体结构如下: 首部字段:包含了 LWM2M 版本、协议类型、消息类型、标识符、可选的 token 和其他首部信息。 资源字段:描述了 LW...

weixin_42588672的博客 666

Cartographer从安装到实战:手把手教你运行2D/3D建图与定位

本文提供了一份详尽的Cartographer从零安装到实战应用的完整指南。内容涵盖环境准备、依赖编译、源码构建等关键步骤,并手把手指导读者运行2D/3D官方数据集进行建图与定位测试。文章深入解析了参数配置与自定义数据适配方法,帮助开发者快速掌握这一强大的实时同步定位与建图工具,并将其应用于机器人导航与自动驾驶等实际场景。

rice5的博客 949

LWN:改进内存管理相关的文档!

关注了就能看到更多这么棒的文章哦~Improving memory-management documentationBy Jonathan CorbetMay 10, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/894374/如同内核的大部分内容一样,内存管理子系统的文档是不太够的,而且大部分现存...

Linux News搬运工 349

单总线CPU设计(变长指令周期3级时序)(HUST)(头歌实验)

利用比较器等功能模块将32位MIPS 指令字译码生成LW、SW、BEQ、SLT、ADDI、OtherInstr信号也就是利用比较器将指令字转换为译码信号,OP与不同信号对应(查询MIPS手册得知) 16 进制 :23 是 2进制: 00100011 ,把获得的OP,Func,和常数比对,相同输出1.按照题目要求填写表格,使用logisim的组合逻辑电路分析功能,当然也可以直接再logisim中写真值表。单总线采用变长指令周期,不同指令周期数不同,节拍数可变化。写的excel表格最终生成电路(当然 需要先把

xuxuaifeifei的博客 1万+

flowable工作流源码解析-DB访问

Flowable用了mybatis组件,又实现了自己的command和interceptor机制。具体是怎么实现的呢? 我们以Deployment操作为例,来看看它的调用链 调用端是Service接口, 它委托自己的commandExecutor去执行具体的Command. Command最终会调用到EntityManager,然后委托给ibatis的sqlsession来完成操作。 其中CommandExcutor调用command的地方有些复杂,我们展开看: CommandExecutor会维护一系

coobee的博客 2483

LWN:内存管理的文档工作以及开发流程!

关注了就能看到更多这么棒的文章哦~Memory-management documentation and development processBy Jonathan CorbetJune 2, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/932398/随着 2023 年 Linux 存储、文件系统、内存管理和 B...

Linux News搬运工 1163

从零开始:如何用Python建立你的第一个人工智能模型

在这篇文章中,我们将介绍如何从零开始使用Python建立你的第一个人工智能模型。无论你是刚接触编程的新手,还是有经验的开发者想进一步探索人工智能领域,这篇文章都将为你提供清晰、详细的指南。我们将一步步探索数据预处理、模型建立、训练和测试的过程,以及如何解读模型的结果。

Allen1862105的博客 4万+

LWN:5.15 合并周期后半部分!

关注了就能看到更多这么棒的文章哦~The rest of the 5.15 merge windowBy Jonathan CorbetSeptember 13, 2021DeepL as...

Linux News搬运工 448

RT-DETR训练前的准备,将数据集划分成训练集、测试集验证集(附完整脚本及使用说明)

在计算机视觉领域,当我们着手训练一个模型时,。其中,将数据集划分为和更是一项基础性且关键的操作。这篇博客分析了这一划分背后的原因、其重要意义以及如何通过代码实现,帮助大家更好地理解和运用这一技巧,。

Limiiiing的博客 906

C# 调用高德地图关键词 API

今天我们要一起探索如何使用 C# 来调用高德地图的关键词搜索 API,从而实现精准的地理位置搜索功能。高德地图的关键词搜索 API 可以帮助我们轻松地实现这一点,它能够返回一系列匹配关键词的地点坐标和其他相关信息。通过简单的几行 C# 代码,我们就实现了调用高德地图关键词搜索 API 的功能。接下来,我们将在一个 C# 控制台应用中实现调用高德地图关键词搜索 API 的功能。此外,如果要在生产环境中使用,还需要考虑安全性问题,例如不要在客户端暴露 API 密钥。🔥关注墨瑾轩,带你探索编程的奥秘!

java专栏 1103

LWN:内核处理Rust代码的流程!

Hindborg 同意,但他也指出,在块(block)子系统中,开发者进行更改时并不担心 Rust 方面的问题。当他收到问题报告时,他会在一天内修复它,一切都会很好。如果 Rust 代码要通过常规的子系统树(subsystem trees),那么维护者至少应该对这些代码进行构建测试(build tests),并且应该有一个明确的方案来应对构建出错(build break)的情况。在他的结论中,他重申,自 6.10 版本以来,Rust 编译器的最低版本一直保持在 1.78.0,即使较新的版本已经获得了支持。

Linux News搬运工 1659

《Zephyr OS 入门与实战》第3章:第一个 Zephyr 程序 - Blinky 实战

解决方法:确认设备树overlay文件已正确加载。返回值,确认驱动初始化状态。

2301_79143213的博客 539

LWN:最近在关注的kernel改动!

关注了就能看到更多这么棒的文章哦~Kernel topics on the radarBy Jonathan CorbetAugust 2, 2021DeepL assisted tran...

Linux News搬运工 523

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

LWN: Linux内存管理代码合入的工作流程

点击上方蓝色字关注我们~The memory-management subsystem development processByJonathan CorbetMay ...

Linux News搬运工 388

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LWN:多代LRU方案的未来!

关注了就能看到更多这么棒的文章哦~Multi-generational LRU: the next generationBy Jonathan CorbetMay 24, 2021Deep...

Linux News搬运工 1242

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LWN: 用DMEMFS来更高效地管理部分内存!

关注了就能看到更多这么棒的文章哦~Sidestepping kernel memory management with DMEMFSBy Jonathan CorbetDecember ...

Linux News搬运工 613

LWN:2022 Linux存储、文件系统、内存管理以及BPF峰会!

关注了就能看到更多这么棒的文章哦~The 2022 Linux Storage, Filesystem, Memory-Management, and BPF SummitBy Jonathan CorbetMay 4, 2022DeepL assisted translationhttps://lwn.net/Articles/893733/Linux Storage,...

Linux News搬运工 737

LWN:优化只有一个用户的内存!

关注了就能看到更多这么棒的文章哦~Optimizing single-owner memoryBy Jonathan CorbetMay 26, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/932391/内核里的内存管理子系统的主要优化目标是要能最大程度地共享资源。但是,正如 Pasha Tatashin 在 20...

Linux News搬运工 1095

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

关注了就能看到更多这么棒的文章哦~The Linux graphics stack in a nutshell, part 2December 28, 2023This article was contributed by Thomas ZimmermannChatGPT translationhttps://lwn.net/Articles/955708/在屏幕上显示应用程序的图形化输出内容需要...

Linux News搬运工 791

LWN:用 LLM 帮助内核开发!

接着,他介绍了“嵌入”(embeddings)的概念,这是一种在 LLM 内部表示文本的方式。它的工作原理是为历史中的每个提交创建一个嵌入,然后查找与可能解决同一类问题的新提交之间的相似之处。然而,与内核中常见的那种状态机不同,LLM 执行状态转换的方式是概率性的,而非确定性的。因此,一个纯粹基于人类的流程会滞后,遗漏重要的漏洞,同时偶尔会标记出实际上不是漏洞的错误。他总结说,通过使用 LLM,内核社区现在拥有一个系统,可以利用多个模型,直接访问 Git 仓库,并利用历史数据来回答关于内核补丁的各种问题。

Linux News搬运工 1676

LWN:folio的最新情况!

关注了就能看到更多这么棒的文章哦~A memory-folio updateBy Jonathan CorbetMay 4, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/893512/folio 项目还不到两年,但它已经导致了对内核的内存管理以及文件系统层的重大改变。虽然已经做了很多工作,但仍有不...

Linux News搬运工 1448

LWN回顾: Android内存管理

Android memory managementByJonathan Corbet,May 1, 2019,LSFMMAndroid系统的设计核心目标就是要能够让用户体验到丝滑一...

Linux News搬运工 310

LWN:6.1 合并窗口第二部分!

关注了就能看到更多这么棒的文章哦~The rest of the 6.1 merge windowBy Jonathan CorbetOctober 17, 2022DeepL assisted translationhttps://lwn.net/Articles/910608/Linus Torvalds 于 10 月 16 日发布了 6.1-rc1,并关闭了 6.1 合并窗口;此时,有 11...

Linux News搬运工 563

LWN:近期在讨论的一些内存管理相关patch!

关注了就能看到更多这么棒的文章哦~Some upcoming memory-management patchesBy Jonathan CorbetNovember 12, 2021Dee...

Linux News搬运工 404

LWN:2025 疯狂的 mapcount!

但是,这种优化只会使专有性问题更加难以回答,尤其是在存在部分映射的页组(其中只有部分页面映射到地址空间中)的情况下。所有这些工作的结果是,内核可以更好地处理任何给定的页组是被独占还是共享映射,尽管它仍然可能偶尔得出结论,即页组在未被独占映射时被共享映射。它们有自己的映射计数,本质上是它们包含的页面的映射计数的总和。对于单个页面,专有性问题很容易回答:如果映射计数为 1,则映射是独占的,否则是共享的。但是,如果映射计数是在页组级别维护的,则该规则不再适用,因为页组级别的计数几乎不可能是 1。

Linux News搬运工 1661
上一篇: LWN:5.18 开发周期数据分析!
下一篇: LWN:分层内存的主动回收及其他!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值