|
|
Subscribe / Log in / New account

Development statistics for 6.17

[LWN subscriber-only content]

Welcome to LWN.net

The following subscription-only content has been made available to you by an LWN subscriber. Thousands of subscribers depend on LWN for the best news from the Linux and free software communities. If you enjoy this article, please consider subscribing to LWN. Thank you for visiting LWN.net!

By Jonathan Corbet
September 29, 2025
The 6.17 development cycle ended on September 28 with the release of the 6.17 kernel. This cycle brought in 13,089 non-merge changesets, a slowdown from its predecessor but still within the normal bounds for recent kernels. The time has come for a look at where those changes came from, with a bit of a side trip into bug statistics.

Work on 6.17 was contributed by 2,038 developers, of whom 298 made their first kernel contribution during this cycle. The most active contributors this time around were:

Most active 6.17 developers
By changesets
Bartosz Golaszewski 2071.6%
Sean Christopherson 1681.3%
Takashi Iwai 1621.2%
Al Viro 1411.1%
Krzysztof Kozlowski 1381.1%
Jakub Kicinski 1351.0%
Eric Biggers 1271.0%
Ian Rogers 1210.9%
Rob Herring 1040.8%
David Lechner 920.7%
Filipe Manana 900.7%
Anusha Srivatsa 900.7%
Jani Nikula 880.7%
SeongJae Park 870.7%
Masahiro Yamada 860.7%
Matthew Wilcox840.6%
Alex Deucher 830.6%
Dmitry Baryshkov 830.6%
Lad Prabhakar 820.6%
Binbin Zhou 790.6%
By changed lines
Dennis Dalessandro 483577.8%
Takashi Iwai 205623.3%
Bingbu Cao 161712.6%
Luca Weiss 128152.1%
Eric Biggers 127752.1%
Rob Clark 86661.4%
Rob Herring 80951.3%
Ian Rogers 70081.1%
Liu Ying 68031.1%
Jakub Kicinski 64891.0%
Jani Nikula 57390.9%
Ivan Vecera 52610.8%
Lorenzo Pieralisi 51580.8%
Svyatoslav Ryhel 51150.8%
Frank Li 50740.8%
Dmitry Baryshkov 47240.8%
Sean Christopherson 45540.7%
Andrea della Porta 45310.7%
Cathy Xu 43780.7%
Thomas Zimmermann 42400.7%

The top contributor of changesets this time around was Bartosz Golaszewski, who carried out some extensive refactoring in the GPIO and pin-control driver subsystems. Sean Christopherson, as always, was busy throughout the KVM subsystem. Takashi Iwai, beyond maintaining the sound subsystem, eliminated large numbers of strcpy() calls there. Al Viro made extensive changes in the virtual filesystem layer (and beyond), and Krzysztof Kozlowski worked mostly with devicetree bindings and system-on-chip drivers.

Dennis Dalessandro only contributed two commits to 6.17, but the one removing the old "qib" Infiniband driver put him at the top of the "lines changed" column. Takashi Iwai reorganized some codec drivers. Bingbu Cao added the IPU7 input system driver to the staging tree, Luca Weiss added a number of drivers for the Milos system-on-chip, and Eric Biggers added a set of tests for cryptographic functions.

In this cycle, 8.1% of the commits carried Tested-by tags, while 53.6% had Reviewed-by tags. The top testers and reviewers for 6.17 were:

Test and review credits in 6.17
Tested-by
Daniel Wheeler 967.8%
Randy Dunlap 463.8%
Rinitha S 453.7%
Antonino Maniscalco 423.4%
Tomi Valkeinen 342.8%
Neil Armstrong 298.7%
Vikash Garodia 262.1%
K Prateek Nayak 262.1%
Sairaj Kodilkar 231.9%
Hiago De Franco 211.7%
Reviewed-by
Simon Horman 2372.5%
Dmitry Baryshkov 1801.9%
Geert Uytterhoeven 1541.6%
Neil Armstrong 1471.6%
Andy Shevchenko 1421.5%
Krzysztof Kozlowski 1401.5%
David Sterba 1221.3%
Ilpo Järvinen 1221.3%
Laurent Pinchart 1171.3%
Andrew Lunn 1071.1%

Daniel Wheeler remains unapproachable as the top tester of commits going into the kernel. On the review side, Simon Horman managed to review nearly four patches for each day of this development cycle; 31 developers reviewed at least one patch per day during this time.

Employer information

There were 209 employers identified as having supported work on the 6.17 kernel; the most active of those were:

Most active 6.17 employers
By changesets
Intel131310.0%
(Unknown)11188.5%
Google11028.4%
Red Hat9537.3%
Linaro6795.2%
SUSE6124.7%
Meta5173.9%
AMD5153.9%
Qualcomm4203.2%
NVIDIA4163.2%
(None)4083.1%
Renesas Electronics3322.5%
Oracle2932.2%
Huawei Technologies2732.1%
Arm2652.0%
NXP Semiconductors2251.7%
Linutronix1921.5%
IBM1761.3%
(Consultant)1721.3%
BayLibre1511.2%
By lines changed
Intel6981711.3%
Cornelis Networks483577.8%
Google475407.7%
(Unknown)450347.3%
SUSE360055.8%
Red Hat308865.0%
Qualcomm294434.8%
Meta239303.9%
NVIDIA221063.6%
Linaro184983.0%
AMD160852.6%
NXP Semiconductors156172.5%
(None)133612.2%
Renesas Electronics132052.1%
Fairphone128152.1%
Arm125772.0%
Huawei Technologies106751.7%
IBM105771.7%
Analog Devices91471.5%
Microsoft68651.1%

These results change little from one release to the next. Cornelis Networks is an unusual name to see here, though; sharp-eyed readers will notice that the number of lines changed is exactly equal to that of Dennis Dalessandro, who was mentioned above.

Bugs introduced and fixed

When kernel developers fix a bug, they normally include a Fixes tag that identifies the commit in which the bug was introduced. Among other things, that allows for various types of interesting analysis, including for bug lifetime and such. The 6.17 kernel, for example, fixes 245 bugs that were introduced in 6.16, but also two that have been present since the beginning of the Git era in 2005 (subscribers can consult this KSDB page for lots of details on where the bugs fixed in 6.17 came from).

One specific question that one might attempt to answer with this data is: are kernel developers fixing more bugs than they introduce (thus reducing total bugs) or not? We asked that question nearly three years ago, with a result that looked like this:

[bugs introduced and fixed per release, 2022 version]

At that time, the plot appeared to show that, as of the 5.0 release, the number of bugs fixed exceeded the number introduced, but that result was never expected to match reality. As has often been shown, it takes a long time to find all of the bugs introduced in a release; in 2022, there had not been enough time to find all of the bugs that showed up in 5.0 (released in 2019).

Running the same analysis now produces this plot:

[bugs introduced and fixed per release, 2025 version]

As one might expect, the 5.0 kernel is now shown to have introduced more bugs than it fixed; the apparent crossover point has moved to 5.8. With enough handwaving, one can come up with all kinds of conclusions from this shift. For example, there were 16 kernel releases made between those two plots, but the crossover point only moved by eight, suggesting that it is taking longer to find the requisite number of bugs in any given kernel release, despite the observable fact that we are fixing more bugs in each release over time. If that reasoning holds, there may eventually come a point where we can say with confidence that a given release has fixed more bugs than it introduced.

Another question one can ask is: which commits have required the most fixes over time — which were the buggiest commits ever made to the kernel? As of 6.17, the answer to that question is:

CommitFixesDescription
1da177e4c3f4 657 Linux-2.6.12-rc2
dd08ebf6c352 159 drm/xe: Introduce a new DRM driver for Intel GPUs
8700e3e7c485 79 Soft RoCE driver
e126ba97dba9 75 mlx5: Add driver for Mellanox Connect-IB adapters
9d71dd0c7009 58 can: add support of SAE J1939 protocol
46a3df9f9718 54 net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support
604326b41a6f 51 bpf, sockmap: convert to generic sk_msg interface
d889913205cf 48 wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices
98686cd21624 46 wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices
d5c65159f289 46 ath11k: driver for Qualcomm IEEE 802.11ax devices
e7096c131e51 46 net: WireGuard secure network tunnel
1738cd3ed342 44 net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)
76ad4f0ee747 41 net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC
e1eaea46bb40 39 tty: n_gsm line discipline
1e51764a3c2a 38 UBIFS: add new flash file system
1ac5a4047975 37 RDMA/bnxt_re: Add bnxt_re RoCE driver
1c1008c793fa 35 net: bcmgenet: add main driver file
7733f6c32e36 34 usb: cdns3: Add Cadence USB3 DRD Driver
25fdd5933e4c 33 drm/msm: Add SDM845 DPU support
54a611b60590 33 Maple Tree: add new data structure
3d82904559f4 33 usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver
b48c24c2d710 32 RDMA/irdma: Implement device supported verb APIs
c09440f7dcb3 31 macsec: introduce IEEE 802.1AE driver
c0c050c58d84 31 bnxt_en: New Broadcom ethernet driver.
7724105686e7 29 IB/hfi1: add driver files
4c8ff7095bef 29 f2fs: support data compression
6a98d71daea1 28 RDMA/rtrs: client: main functionality
96518518cc41 27 netfilter: add nftables
3f518509dedc 26 ethernet: Add new driver for Marvell Armada 375 network unit
c948b5da6bbe 26 wifi: mt76: mt7925: add Mediatek Wi-Fi7 driver for mt7925 chips
e2f34481b24d 26 cifsd: add server-side procedures for SMB3
3c4d7559159b 26 tls: kernel TLS support
a49d25364dfb 26 staging/atomisp: Add support for the Intel IPU v2
d2ead1f360e8 25 net/mlx5e: Add kTLS TX HW offload support
726b85487067 25 qla2xxx: Add framework for async fabric discovery
119f5173628a 25 drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.
152d1faf1e2f 25 arm64: dts: qcom: add SC8280XP platform
c156633f1353 25 Renesas Ethernet AVB driver proper
44e694958b95 24 drm/xe/display: Implement display support
a05829a7222e 24 cfg80211: avoid holding the RTNL when calling the driver

Commit 1da177e4c3f4 is the original commit that started the Git era, so any bugs seemingly introduced there could have come anytime in the first 14 years of the kernel's development history. As Andrew Morton recently observed: "we really blew it that time!". Perhaps most notable is the second-place commit, adding the xe graphics driver, which only landed in the kernel for the 6.8 release and has quickly accumulated Fixes tags. Beyond that, it remains true that many of the most-fixed commits in the kernel history come from the networking subsystem, for reasons that are far from clear.

As of this writing, there are just over 11,300 non-merge commits waiting in linux-next, which has not been updated for a few days. Those commits will soon spill into the mainline for the 6.18 release, starting the whole process over yet again. As always, LWN will be there keeping an eye on that release as it comes into shape; stay tuned.

Index entries for this article
KernelReleases/6.17



to post comments

"many of the most-fixed commits in the kernel history come from the networking subsystem"

Posted Sep 30, 2025 4:35 UTC (Tue) by alison (subscriber, #63752) [Link]

Plausible explanations might be that networking subsystem bugs are easier to discover, or that the networking subsystem tends to merge larger single commits than other subsystems.

Bugs per commit

Posted Sep 30, 2025 14:43 UTC (Tue) by iabervon (subscriber, #722) [Link] (1 responses)

It looks like the commits that introduce the most bugs are mostly the ones that add new drivers, which makes sense in that they also introduce more new code, in general, and also generally don't have any tests for corner cases the author didn't think of (unlike changes that often have tests that someone wrote previously). And they generally can't cause regressions (other than hardware users didn't need waking up and causing problems), so the bugs take longer to notice.

You could reasonably say that the addition of the xe driver broke down the single big bug (of the hardware being entirely unsupported) into a lot of smaller, harder-to-trigger bugs and fixed a lot of test cases while leaving a relatively small number of test cases unaddressed.

Bugs per commit

Posted Sep 30, 2025 16:29 UTC (Tue) by npws (subscriber, #168248) [Link]

It seems to derive any conclusions from the bug numbers, they at least need to be put in relation to the LOC of the commit that introduced them, or some related metric. It is hardly a surprise that 10000 lines of code contain more bugs then 10 lines of code.

Fixes tags in networking

Posted Oct 1, 2025 12:20 UTC (Wed) by error27 (subscriber, #8346) [Link]

I haven't done the numbers but I know that these things are true and obviously are going to affect the numbers. The networking subsystem was started enforcing that people must add a Fixes tag before other subsystems did. The second thing is that in the last few years a lot subsystems have started rebasing more. So if you fix a commit in linux-next, these days a lot of subsystems will fold the fix into the original commit instead of applying it as a separate patch. Networking doesn't rebase.

Also networking is quite big and active.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds