社区补丁的回复及常用链接
一、背景
在提交给社区补丁后,大概率社区大佬们会给出相应的回复,如果对补丁不感兴趣或者已有相同问题的解决思路的话,会回复说参考某某链接。如果对补丁感兴趣的话,则会给一些基本的建议,比如之前我提的一个内核补丁,我用一个新的配置选项,大佬就回复说别用新的编译配置选项了,意思就是直接改掉当前的实现。如果大佬对补丁本身给出了一些建议的话,那可能说明补丁有合入的可能了,当然大佬除了对补丁本身给出建议的同时,可能也会要求提供一些数据来支撑补丁带来的好的效果,等等。意见可能会一封接一封的邮件里不断冒出来,不要指望一两个回复就能把补丁里的问题和建议全部识别到,大佬也是人,也需要时间来去审阅。
这篇博客里,我们在第二章里给出如何查阅社区的回复的方式以及一些常用的网站,用于追踪社区相关仓库和相关模块的新的补丁的状态。
二、回复的方式及追踪社区相关仓库和相关模块最新状态
有关准备补丁、准备邮箱、配置git send-email的细节见之前的博客 向内核社区提交补丁。
这里介绍如何回复大佬给出的意见,及跟踪社区相关仓库最新状态。
2.1 回复时的命令
在大佬针对补丁给出意见或建议之后,要尽量快的进行回复,如果是需要时间整改,偶尔拖延1-2天也是可以的,但是如果只是一些疑问需要回复的话,还是尽快进行回复。
回复的方式,或者说是回复大佬的意见的方式,和发送补丁时的方式几乎是一样的。
回复应该分为两种,大佬看到我的补丁,回复补丁给出意见;我看到大佬给我的意见,回复这个意见。
比如,我提的一个补丁,提的其中一个中间版本,v10版本的链接如下:
https://lore.kernel.org/all/20250831100822.1238795-1-jackzxcui1989@163.com/
任何人都可以回复这个补丁,给出意见和建议,当然最好是这个补丁正在沟通过程中,如果都已经merge了,再去提意见和建议就比较尴尬了。
如下图链接里的红色框出的命令,在配置好git send-email后就可以进行回复,回复这个主题:
git send-email \--in-reply-to=20250831100822.1238795-1-jackzxcui1989@163.com \--to=jackzxcui1989@163.com \--cc=davem@davemloft.net \--cc=edumazet@google.com \--cc=ferenc@fejes.dev \--cc=horms@kernel.org \--cc=kuba@kernel.org \--cc=linux-kernel@vger.kernel.org \--cc=netdev@vger.kernel.org \--cc=pabeni@redhat.com \--cc=willemdebruijn.kernel@gmail.com \/path/to/YOUR_REPLY
可以通过下图里看到,我这个链接的主题是:[PATCH net-next v10 0/2] net: af_packet: optimize retire operation
如上图,这个邮件的主题是一个PATCH,而不是大佬对PATCH给出的回复意见。
下图则是大佬对PATCH给出的回复意见的邮件:
事实上,我在回复大佬意见时,并没有去用--in-reply-to=... 这个参数,而是直接和发补丁时用的git send-email后面的内容差不多,只是按需增加和调整回复人而已,看起来我这样回复也并没有什么问题。
2.2 回复的内容里要注意格式
下图是我随便挑了一封回复邮件,我们按顺序介绍一下:
如上图,回复内容的一开始,得是主题,要记得修改,上图就是回复意见,所以是要加上Re:
然后是下图,要记得加上回复的邮件的人名的wrote的时间:
然后,把要回复的邮件里的一个段落,如下图方式批量加上> 在每行开头:
这一步可以使用vscode里的ctrl+alt+光标(上/下)来弄出一个大的光标,然后写> ,这样可以不用一行行去编辑了。
然后就是自己回复的内容,自己回复的内容就别加> 了(下图里红色框出的就是自己回复的内容):
2.3 常用的一些链接
2.3.1 查看社区最近的邮件(补丁或者回复)
查看回复邮件有没有发送成功和查看补丁有没有发送成功都是可以通过下面的链接来查看的(下面这个链接的响应是很快的):
https://lkml.org/
要注意的是,回复邮件的发送是会有一定时间滞后的,不像补丁的发送那么快的能显示到链接里。回复邮件要显示到https://lkml.org/ 里是需要等大概10分钟以上时间的。
另外,如果要回复邮件,查看 https://lkml.org/ 链接也是最快的一个选择,只是 https://lkml.org/ 链接里没有按照模块分类,你需要知道邮件的时间,如果是最近几天的话,你就可以找到,比如是今天的或者是昨天的,或者是最近100封邮件的,都是点下图里的地方来跳转找到:
2.3.2 分模块搜索历史邮件或者整个搜索历史邮件
下面的链接里有各个子系统模块的各自的最新的补丁及邮件回复,但是这个链接非常慢还会检查是否是机器人:
https://lore.kernel.org/
你可以在上面的链接里全局的进行搜索,那就需要点下图里的all链接:
然后再在下图里的输入框里填入内容进行搜索:
你也可以根据细分的模块,在模块内进行搜索:
如上图,在 https://lore.kernel.org/netdev/ 里进行搜索。
另外,要补充的是,补丁提交时需要带上的各个版本的变更信息里,需要贴上link:链接,就需要写这个lore.kernel.org开头的这个链接,比如下面的这个链接:
https://lore.kernel.org/all/20250831100822.1238795-1-jackzxcui1989@163.com/
就写到了patch的描述里:
2.3.3 查看某个模块的单独维护的分支的最近commit情况
这个要根据具体的模块来确定,比如网络模块的net-next分支,查看如下链接:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
点下图里的commit:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit
下面的这个链接,就是我之前的一个提交正式合入net-next分支的一个merge的commit的链接:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=be30f56386f202530127c1c2ec55b6dd2c9489d1
合入分支是需要大佬“手动”认可的,如上图里的大佬 Jakub Kicinski。