LWN:5.14 開發(fā)周期數(shù)據(jù)分析!
關(guān)注了就能看到更多這么棒的文章哦~
Some 5.14 development statistics
By Jonathan Corbet
August 30, 2021
DeepL assisted translation
https://lwn.net/Articles/867540/
5.14 內(nèi)核在經(jīng)歷了 9 個(gè)星期的開發(fā)之后,終于在 8 月 29 日正式發(fā)布了。這個(gè)周期不像上一個(gè)版本(創(chuàng)造了參與開發(fā)人數(shù)最多的記錄)那么繁忙,但是仍然有許多進(jìn)展,包括一些等待許久的功能終于合入了?,F(xiàn)在既然已經(jīng)發(fā)不了,那么又到了我們傳統(tǒng)的節(jié)目了,一起來回歸一下 5.14 中合入的代碼主要來自哪里,以及經(jīng)過什么路徑合入的。
針對(duì) 5.14 版本,內(nèi)核社區(qū)相應(yīng)地合入了 14,735 個(gè) non-merge changeset,來自 1,912 位開發(fā)者。其中 261 位開發(fā)者是在本周期內(nèi)才開始 kernel 貢獻(xiàn)的。內(nèi)核增加了 861,000 行代碼,移除了 321,000 行,凈增 540,000 行代碼。
最活躍的 5.14 開發(fā)者為:
| Most active 5.14 developers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lee Jones 近來似乎已經(jīng)固定處于 changeset 數(shù)量頂端了,他繼續(xù)在 kernel 代碼內(nèi)到處進(jìn)行清理工作、完成 warning fix。Andy Shevchenko 在驅(qū)動(dòng)程序子系統(tǒng)下進(jìn)行了許多 fix。Mauro Carvalho Chehab 主要是在 media 子系統(tǒng)下進(jìn)行了許多文檔修訂工作,Peng Li 則在網(wǎng)絡(luò)驅(qū)動(dòng)里面進(jìn)行了許多 style fix,Yang Yingliang 在不同的驅(qū)動(dòng)中 fix 了許多 warning。
在 "changed lines" 榜單中,我們看到 Aaron Liu 和 Aurabindo Jayamohanan Pillai 位于榜首,肯定是由于那許多 amdgpu 頭文件的改動(dòng)。Christoph Hellwig 繼續(xù)做他的重構(gòu)工作,主要集中在塊設(shè)備子系統(tǒng)內(nèi)。Mustafa Ismail 用一系列 patch 添加了針對(duì) RDMA 的 Intel Ethernet protocol 的驅(qū)動(dòng),James Smart 新增了一個(gè) SCSI 驅(qū)動(dòng)。
5.14 的工作主要得到了 231 個(gè)公司、團(tuán)體的支持,其中最活躍的是:
| Most active 5.14 employers | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Huawei 再一次來到了 changeset contributors 榜單的首位. 除此之外這次的榜單跟以前沒有多少差別。
從最開始的時(shí)候起,我們的統(tǒng)計(jì)主要都是關(guān)注那些 non-merge changeset,因?yàn)槲覀冋J(rèn)為這些是完成真正工作的改動(dòng)。而 Merge changeset 則只是用來從一個(gè) git 倉庫或分支傳播到另一個(gè)上的過程。也就是說 merge commit 主要是維護(hù)者的工作產(chǎn)物。每個(gè) merge 都實(shí)際上經(jīng)過了對(duì)代碼的審查,以及判斷是否是合適的時(shí)機(jī)來推動(dòng)這部分改動(dòng)到下一站(直至最終合入 mainline kernel)。所以我們也應(yīng)該看看這些 merge commit 了。在 5.14 周期中創(chuàng)建了最多 merge commit 的開發(fā)者是:
| Merge contributors in 5.14 | ||
|---|---|---|
| Linus Torvalds | 384 | 33.8% |
| David S. Miller | 230 | 20.2% |
| Olof Johansson | 82 | 7.2% |
| Mark Brown | 54 | 4.8% |
| Dave Airlie | 52 | 4.6% |
| Greg Kroah-Hartman | 35 | 3.1% |
| Rafael J. Wysocki | 28 | 2.5% |
| Jakub Kicinski | 28 | 2.5% |
| Bjorn Helgaas | 25 | 2.2% |
| Will Deacon | 24 | 2.1% |
| Arnd Bergmann | 16 | 1.4% |
| Marc Zyngier | 14 | 1.2% |
| Stephen Boyd | 13 | 1.1% |
| Takashi Iwai | 10 | 0.9% |
| Paolo Bonzini | 8 | 0.7% |
| Jens Axboe | 8 | 0.7% |
| Darrick J. Wong | 8 | 0.7% |
| Thomas Gleixner | 6 | 0.5% |
| Ingo Molnar | 6 | 0.5% |
| Jiri Kosina | 6 | 0.5% |
Linus Torvalds 一般來說并不會(huì)出現(xiàn)在我們以前統(tǒng)計(jì)的這些榜單中,畢竟他自己也承認(rèn)近來他寫的代碼已經(jīng)很少了。而 merge 數(shù)量則反映出了他的工作在哪里了。他處理了來自不同子系統(tǒng)維護(hù)者的數(shù)百個(gè) pull request,仔細(xì)檢查每一個(gè)(其實(shí)他看得會(huì)比一般人猜想的要更加仔細(xì)),然后如果看起來挺好的話就進(jìn)行 merge 操作。他的這些 merge 工作占了 kernel 中這類操作的 1/3。
不過,每個(gè) patch 其實(shí)有兩條路可以走完這些子系統(tǒng)的維護(hù)者鏈條。其中一條是經(jīng)過 pull requests,每一個(gè) pull request 都會(huì)產(chǎn)生上述表格中統(tǒng)計(jì)的一個(gè) merge 節(jié)點(diǎn)。不過在這之前其實(shí)某位維護(hù)者需要先將其合入了他自己的 Git 倉庫從而開始 pull request 流程。這時(shí)候維護(hù)者都會(huì)給 patch 加上一個(gè) Signed-off-by tag。想要看到維護(hù)者們的工作量的話,可以看一下每個(gè) patch 上帶有的不是作者本人的 Signed-off-by tag。在 5.14 中的結(jié)果是:
Non-author signoffs in 5.14 David S. Miller 1625 11.0% Greg Kroah-Hartman 1118 7.5% Alex Deucher 867 5.8% Mark Brown 541 3.6% Andrew Morton 489 3.3% Martin K. Petersen 332 2.2% Paolo Bonzini 324 2.2% Jens Axboe 324 2.2% Mauro Carvalho Chehab 284 1.9% Michael Ellerman 273 1.8% Takashi Iwai 216 1.5% Jason Gunthorpe 213 1.4% Hans Verkuil 209 1.4% Guangbin Huang 180 1.2% Will Deacon 176 1.2% Bjorn Andersson 170 1.1% Arnaldo Carvalho de Melo 169 1.1% Jakub Kicinski 154 1.0% Jonathan Cameron 148 1.0% Herbert Xu 144 1.0%
這里我們看到那些 apply patch 而不是進(jìn)行通常 pull request 流程的維護(hù)者們。有些名字在兩個(gè)榜單上都存在,但是無論如何這兩個(gè)名單還是差異很大的。David Miller 出現(xiàn)在兩個(gè)榜單的頂部區(qū)域正說明了他比起別人完成的工作更多,非常高興可以看到他又可以恢復(fù)到全速工作的狀態(tài)了。這數(shù)據(jù)也能看出那種將 patch 先合入 topic branch 再合入本地主干分支從而發(fā)給 upstream 的工作方式。合入了的每組 patch 都聲稱了一個(gè)非作者本人的 signoff 以及一個(gè) merge commit。其他維護(hù)者直接合入到跟 upstream 對(duì)應(yīng)的本地主干分支就不會(huì)生成這種 merge 節(jié)點(diǎn)。
無論采用什么方式,這些在管理整個(gè)系統(tǒng)中 patch 的維護(hù)者們都在 kernel 開發(fā)流程中具有非常重要的作用。沒有他們的貢獻(xiàn)的話,所有那些提供出 patch 的開發(fā)者們就沒有地方可以投遞了。維護(hù)工作很辛苦,經(jīng)常沒有回報(bào)。我們都需要感激他們能一直支撐著內(nèi)核的整個(gè)開發(fā)流程。
可以看出,內(nèi)核開發(fā)社區(qū)仍然表現(xiàn)很好,繼續(xù)如常地快節(jié)奏推進(jìn)。在撰寫本文的時(shí)候,5.15 開發(fā)周期已經(jīng)早就有很多改動(dòng)排隊(duì)等著合入了。我們會(huì)看到上述的情況在今后的 9~10 周的時(shí)間內(nèi)再次重復(fù)(當(dāng)然也會(huì)有一些新的變化)。
全文完
LWN 文章遵循 CC BY-SA 4.0 許可協(xié)議。
長(zhǎng)按下面二維碼關(guān)注,關(guān)注 LWN 深度文章以及開源社區(qū)的各種新近言論~
