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

Delta-Sigma调制(DSM)技术 前言 数字信号处理和通信系统的性能很大程度上受到了模拟信号到数字信号转换接口——ADC的精度和分辨率的限制。而传统的线性脉冲编码调制(PCM)ADC受到了制造工艺的限制,无法达到很高的分辨率。但基于Delta-Sigma调制技术的ADC可以在现有工艺下实现高分辨率(大于16位),同时由于结构简单,所以易于实现。低成本高性能使得Delta-Sigma调制技术得到了广泛的应用。 Delta-Sigma型ADC的结构原理图如下图所示: 它最大的优势在于仅用1位ADC进行数据转换,同时其模拟电路部分结构简单不需要 阅读详情
640点击上方蓝色字关注我们~



The memory-management subsystem development process

By Jonathan Corbet
May 7, 2019


LSFMM


在2019 Linux Storage, Filesystem, and Memory-Management Summit上,内核子系统维护者Andrew Morton跟大家讨论了开发流程的状态。这次的会议上看起来memory-management相关的开发者大多都对现在的工作流程感到满意,不过还是有一些小地方希望能够继续改进。其中一些问题是老问题了,很难处理好,其他也有一些能够短期见效的建议被提出来。


Morton首先提醒与会者,2018年的development-process会议中已经达成一致意见,所有的memory-management相关的patch都需要先通过review,然后才能合入upstream上游代码。他认为这个目标已经很容易的达成了。大多数的review反馈都是很不错的,当然也有一些稍差。不过,他提了一个问题,大家觉得review整体来说是有帮助吗?在座者的回答很明确“Yes”。Aneesh Kumar指出,因为坚持需要review才能合入的规则,就让开发者有更多压力来推动review进展。Morton也希望各位管理者能够让相应的developer花更多时间来帮助进行patch review。


此时,Mel Gorman引出了一段长篇大论,阐述他的看法。他认为memory-management subsystem里面的patch review并不是每次都能达到目的。举例来说,开发者有时候贴出一些很复杂的patch set改动,却没有讲述清楚这样改动的理由。review者指出这一点之后,下一版的patch却变得更加复杂。Memory management这个子系统不能用一个非黑即白的判断来简单评判代码改动,这里的改动会对整个系统有全方位的影响,可是很多patch作者却只提供了一些极少的数据来证明这个改动有益。

640

Gorman同时指出,有些大家认为非常重要的fix patch,有时候会被拒绝合入,可能只是因为有一位反对者,就阻止了它的合入。其他子系统的维护者可能会对这种patch直接下结论一定需要合入,不过在memory management子系统,这种情况可能会让patch拖很长时间无法合入。他提到删除legacy block layer的那次改动,经过了几轮讨论,当时仍有反对意见,不过作者都提供了解释,最终维护者直接合入了这组改动,Gorman觉得这个行为是正确的。

而memory-management这部分的patch review就跟这个不太一致了。例如,在讨论回退掉Andrea Arcangeli的修复transparement huge page分配的性能问题的patch的时候,就应该更果断一点结束讨论。最终这组patch因为“一位开发者提出的一个大家未能复现出来的场景”而被revert了。他的结论是,有时候必须要推动工作前进。假如一直等着争议自己解决,那么永远没法推进。


Michal Hocko提出了一个长久以来一直存在的问题:写patch的人一直比读patch的人多。Johannes Weiner问这个是否导致了质量问题。Hocko认为是肯定的,memory management子系统里面有某些部分比其他部分的问题更加多。Gorman认为除了memory-management子系统以外,其他很多模块都有这个问题,也确实会影响质量,不过大家别认为这只是memory-management子系统独有的问题。Morton希望开发者后面碰到这类问题的时候能提醒他注意。Gorman说只要某些人在某些邮件讨论中出现后快速fix了一些东西,然后又消失了,那就说明一般有什么东西出错了。


Morton介绍道,在传统的kernel maintainer模式下,maintainer(维护者)通常都是在一个patch set的开发后期、快要结束的时候才介入。maintainer的任务就是来确保这个patch能合入upstream上游分支。一般来说patch打入maintainer的git仓库之后就不会改变了。不过Morton没有采用这种工作方式,他经常在早期介入,来帮助开发者能把他们的工作做的更完美一些。他的-mm代码树是开发过程的一部分,而不是开发的终点。这种模式大家觉得好还是不好?


Vlastimil Babka指出开发者们通常并没有意识到-mm代码库是按照这种模式工作的。他们觉得只要合入了-mm库,工作就结束了。Morton的回答是他现在也尽量不要那么早参与了,很多patch set的第一版他就不看了。Hocko介绍,他作为reviewer的时候,某个patch set如果后来有fix被合入-mm库的话,他有可能意识不到这个后续改动。他认为这是一个大问题,会导致一些不合适的代码被合入。这就是这种early merge策略会导致的一个负面影响,他更希望开发者能发送一个新版本的patch set,解决了问题之后再进行合入。


Gorman觉得这种early merging的策略既有好处也有局限性。它会让开发者在linux-next上工作感到更加困难,因为linux-next分支包含很多尚未完善的代码。Gorman自己的patch通常都会提供很多数据来支持,不过那些数据都是基于mainline的kernel来测试得到的,如果是在-mm库上测试的话,这个数据可能会有很大区别,会导致他需要把所有测试工作全部重做一遍。他觉得,如果-mm代码库能有几个topic branch供开发者工作,那就太好了。这个观点得到了会场的广泛赞同。Hocko觉得memory-management子系统的各个不同部分应该用不同的代码分支来开发,-mm代码库现在作为唯一一个分支容易有各种错误。其他子系统也有的在开发流程中加入更多冗余备份,他认为这个也有借鉴价值。


Mortan觉得如果大家直接基于mainline开展工作,并且也能正常的进行工作,那他也没有异议。不过,Gorman指出,很难确认-mm代码库里的哪些patch会在近期合入upstream。这个可以通过在-mm这里增加几个标准的分支来改善,开发者们就能比较清楚下一个merge window会是大概什么样子(哪些patch会得到合入)。


会议结束时间差不多到了,大家迫不及待要去吃大餐了,Babka还指出大多数maintainer都会在他们的pull request里面写一个详细的总结,不过-mm仓库上没有这么做。我也觉得这是个问题。Morton承诺他会想办法改善,然后结束了会议。


全文完

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

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


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


640?wx_fmt=jpeg

JeecgBoot漏洞利用工具解析:一键getshell原理与安全加固实践 在应用安全领域,远程代码执行(RCE)和文件上传漏洞是Web系统面临的高危威胁,其核心原理在于对用户输入的控制不足或安全校验缺失。攻击者通过构造恶意请求,可绕过系统边界,在服务器上执行任意命令或上传恶意文件,从而获取系统控制权。这类漏洞的技术价值在于揭示了应用层安全防护的薄弱环节,其利用方式自动化、集成化趋势明显,极大地提升了攻击效率。在低代码开发平台等快速构建的业务系统中,此类风险尤为突出。应用场景广泛覆盖安全测试、渗透评估与应急响应。本文聚焦于JeecgBoot平台的历史高危漏洞,深入解析其SQL注入、 阅读详情

相关推荐

qPCRtools | 神仙R包分分钟搞定你的qPCR实验结果!~

1写在前面 不知道大家都是怎么完成qPCR的计算的,在不会R的时候,我是用一个祖传的Excel表进行计算的。🤣 但是,一直有个缺点,如果需要计算的量比较大时,就不方便了,去搜了一下文献,发现了一个最近发表的R包,不仅可以计算反转录的RNA体积,还可以帮助选择定量方法,简直是神仙R包,本期就介绍一下它的使用吧。🥰 感谢原作者的开发,嘿嘿,文末有引用方法。👀 2用到的包 rm(list = ls())library(tidyverse)library(ggsci)library(qPCRtools)librar

m0_72224305的博客 3984

看看国外的本科生能做什么?(Robert Love)

人物专访:核心黑客系列之一Robert Love 每个星期,我们都采访一个内核编写社区的人,虽然这样的采访会很侧重技术,但是我们的立足点是为了让所有人都能接受。本周我们采访了Robert Love,现在他正在维护“可抢占内核”的升级包和其他一些事。他使用Linux已经7年了,对于现在的内核有很多贡献。所有这些最后用他自己的话来描述。 记者Jeremy Andrews(一下简...

weixin_30387799的博客 165

openwrt编译及第一个安装包教程

Date: 2017.03.14 Made:SuperDeverloper Email: na1206@live.com Target: For mt7688 based board说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮

SuperDevloper的博客 1万+

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

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 390

从标准到实战:详解IEC 61000-4-2下的ESD电路防护设计

本文深入解析IEC 61000-4-2标准下的ESD电路防护设计,从静电防护的基础原理到实战应用。详细介绍了接触放电与空气放电的区别、防护器件选型要点(如TVS管和压敏电阻)以及PCB布局的黄金法则,帮助工程师有效提升电子产品的抗静电能力,确保设备在严苛环境下的稳定运行。

weixin_33704234的博客 512

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

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

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

Python 爬虫实战:深入闲鱼平台,抓取二手好物价格波动数据

本文介绍了如何利用Python爬虫抓取闲鱼(Xianyu)二手交易平台的商品价格数据并分析其波动趋势。通过requests和BeautifulSoup库实现网页数据抓取与解析,使用pandas进行数据清洗和存储,最后借助matplotlib可视化价格波动情况。文章详细展示了从网页结构分析、数据采集到波动率计算和趋势可视化的完整流程,并建议通过定时任务实现持续数据更新。该项目能为二手市场交易者提供价格参考,帮助优化买卖决策。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3375

Orin 调试GMSL camera 96712手册重点

96712基础理解

乐于分享 9186

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

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

Linux News搬运工 1163

【AUTOSAR SystemServices】深入解析StbM模块:功能定义、工作原理与代码实现

STBM模块:AUTOSAR同步时基管理核心解析 STBM(同步时基管理器)是AUTOSAR标准中实现车载系统时间同步的关键模块,主要功能包括: 时间基准管理:支持全局时基、偏移时基和纯本地时基三种类型,通过StbM_SetGlobalTime和StbM_SetOffset实现主从节点同步。 校正机制:采用偏移校正和速率校正算法(PPM级精度)补偿时钟偏差,确保多ECU时间一致性。 事件处理:监控时间跳变和超时事件,通过回调机制通知上层应用。 典型应用:用于CAN/Ethernet总线同步、时间触发调度及诊

1458

LWN: Linux 5.3合入窗口进展 part 2

点击上方蓝色字关注我们~5.3 Merge window, part 2ByJonathan CorbetJuly 22, 2019在5.3 merge window结...

Linux News搬运工 438

廖雪峰Python教程[完整版]

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

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LWN:引人眼球的Popcorn Linux能合入kernel吗?

关注了就能看到更多这么棒的文章哦~Popcorn Linux pops up on linux-kernelByJonathan CorbetMay 5, 2020原文来自:https...

Linux News搬运工 1183

android 蓝牙通讯demo

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

LWN: folio 改动未能合入!

关注了就能看到更多这么棒的文章哦~The folio pull-request pushbackBy Jonathan CorbetSeptember 10, 2021DeepL assi...

Linux News搬运工 417

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LWN:合入bcachefs!

关注了就能看到更多这么棒的文章哦~Merging bcachefsBy Jake EdgeJune 16, 2023LSFMM+BPFDeepL assisted translationhttps://lwn.net/Articles/934692/bcachefs 文件系统及其推送到 upstream 的过程是 bcachefs 的创建者 Kent Overstreet 在 2023 年 Lin...

Linux News搬运工 1534

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回顾: Android内存管理

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

Linux News搬运工 310

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

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

Linux News搬运工 523

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

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

Linux News搬运工 349

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

关注了就能看到更多这么棒的文章哦~The state of memory-management developmentBy Jonathan CorbetMay 10, 2022LSFMMDeepL assisted translationhttps://lwn.net/Articles/894378/2022 年的 Linux 存储、文件系统、内存管理和 BPF 峰会(...

Linux News搬运工 355

LWN:Dentry negativity

关注了就能看到更多这么棒的文章哦~Dentry negativityByJonathan CorbetMarch 12, 2020原文来自:https://lwn.net/Artic...

Linux News搬运工 439

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

点击上方蓝色字关注我们~Testing and the stable treeByJake EdgeMay 28, 2019LSFMMSasha Levin在2019 ...

Linux News搬运工 547

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

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

Linux News搬运工 448

如何学习 Linux 内核内存管理

LSF/MM 是一年一度的 Linux 存储、文件系统和内存管理峰会,这是一个仅限受邀者参加的活动,人们通常会讨论下一年的计划和项目。通常在阅读代码时,如果有不明白的地方,我会使用 “git blame”。特别是在mm 部分,开发人员习惯于写详细的提交日志(附带测试用例/程序),以便自己和其他人将来可以参考。Linux内核内存管理部分是Linux内核中第二复杂的部分,但也非常有趣。

rayylee 774
上一篇: LWN:不在CVE列表里的安全漏洞
下一篇: LWN: small-task packing披了马甲卷土重来
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值