Some 4.12 development statistics
The 4.12 kernel includes 14,821 non-merge changesets contributed by 1,825 developers. That is not the highest changeset count we've ever seen — 4.9 is likely to hold that record for some time — but it comes in at a solid #2. The 4.12 kernel did set a new record for the number of developers participating and for the number of first-time contributors (334), though. This was also a significant release for the growth of the kernel code base: 4.12 has just over one million lines of code more than its predecessor.
The most active developers in the 4.12 cycle were:
Most active 4.12 developers
By changesets Chris Wilson 365 2.5% Al Viro 143 1.0% Christoph Hellwig 136 0.9% Tobin C. Harding 134 0.9% Johan Hovold 124 0.9% Colin Ian King 116 0.8% Geert Uytterhoeven 116 0.8% Jan Kara 115 0.8% Arnd Bergmann 113 0.8% Hans de Goede 102 0.7% Daniel Vetter 100 0.7% Dan Carpenter 98 0.7% Arnaldo Carvalho de Melo 92 0.6% Alex Deucher 91 0.6% Markus Elfring 89 0.6% Mauro Carvalho Chehab 86 0.6% Ville Syrjälä 83 0.6% Yan-Hsuan Chuang 83 0.6% Javier Martinez Canillas 80 0.5% Marc Zyngier 78 0.5%
By changed lines Alex Deucher 369179 25.2% Alan Cox 209556 14.3% Hans de Goede 112114 7.7% Hans-Christian Egtvedt 27100 1.9% Gilad Ben-Yossef 17593 1.2% Chris Wilson 15670 1.1% Eric Huang 10851 0.7% Steven J. Hill 10837 0.7% Paolo Valente 10505 0.7% Yan-Hsuan Chuang 10289 0.7% Geert Uytterhoeven 9580 0.7% Mauro Carvalho Chehab 8887 0.6% Christoph Hellwig 8285 0.6% Javier González 8211 0.6% Ioana Radulescu 8123 0.6% Benjamin Herrenschmidt 8016 0.5% Boris Brezillon 7943 0.5% Jie Deng 7741 0.5% Ken Wang 6904 0.5% Neil Armstrong 6887 0.5%
For the second cycle in a row, Chris Wilson contributed the most changesets; almost all of them were changes to the Intel i915 graphics driver. Al Viro worked as usual in the virtual filesystem layer, but the bulk of his patches this time around were a reworking of the low-level user-space access code — a job that required changing a fair amount of architecture-specific machinery. Christoph Hellwig made a number of improvements in the block and filesystem layers, Tobin Harding focused on staging fixes, and Johan Hovold worked extensively in the USB subsystem and beyond.
In a cycle where the kernel grows by a million lines, one can expect to see some developers adding a lot of code. Alex Deucher added more AMD graphic driver register definitions; drivers/gpu/drm/amd/include now contains over 800,000 lines of such definitions. Alan Cox added the Intel "atomisp" camera drivers to the staging tree. Hans de Goede added the rtl8723bs WiFi driver (plus a bunch of other work), Hans-Christian Egtvedt bucked the trend by removing the unloved AVR32 architecture, and Gilad Ben-Yossef added the ARM TrustZone CryptoCell C7XX crypto accelerator drivers.
Work on the 4.12 kernel was supported by at least 233 employers, a number which is pretty much in line with previous releases. The most active of those employers were:
Most active 4.12 employers
By changesets Intel 2340 13.9% (Unknown) 1447 8.6% Red Hat 1257 7.5% (None) 1173 7.0% IBM 876 5.2% Linaro 570 3.4% AMD 526 3.1% 515 3.1% SUSE 482 2.9% (Consultant) 458 2.7% Samsung 348 2.1% ARM 338 2.0% Renesas Electronics 303 1.8% Mellanox 284 1.7% Oracle 238 1.4% Broadcom 230 1.4% Free Electrons 221 1.3% NXP Semiconductors 212 1.3% Huawei Technologies 199 1.2% Texas Instruments 191 1.1%
By lines changed AMD 406009 25.8% Intel 330637 21.0% Red Hat 171069 10.9% IBM 50198 3.2% Linaro 43525 2.8% (Unknown) 39629 2.5% (None) 31731 2.0% ARM 30795 2.0% Cisco 30016 1.9% Cavium 29737 1.9% Samsung 25442 1.6% 22814 1.5% NXP Semi. 20767 1.3% (Consultant) 17941 1.1% Renesas Electronics 17663 1.1% Mellanox 16638 1.1% Free Electrons 16636 1.1% Realtek 12414 0.8% Synopsys 12201 0.8% SUSE 11929 0.8%
As has been the case in recent years, there are not a lot of surprises to be found in this table. Kernel development may move quickly, but the commercial ecosystem surrounding it changes rather more slowly.
Another way of looking at things is to ask what the companies above are actually working on. Looking at the data from after the 4.7 release now (one year's worth, essentially), and just looking at Intel's contributions, we see something like this:
Intel (9192 total) Percent Directory Notes 38.3% drivers/gpu 32.0% drivers/gpu/drm/i915 10.2% include 9.6% driver/net 5.4% drivers/staging Mostly the Lustre filesystem 4.5% arch/x86 4.0% drivers/infiniband 3.5% sound 3.4% drivers/usb 3.1% tools
Intel's work, thus, is mostly focused on support for Intel hardware — not a huge surprise, really. The company is routinely the kernel's largest single contributor, but it leaves core-kernel development to others.
The results for Red Hat look rather different (once again, looking at patches after 4.7):
Red Hat (4947 total) Percent Directory Notes 15.8% include 14.8% fs 11.8% tools Mostly perf 10.6% net 10.3% arch/x86 9.3% drivers/gpu 8.1% kernel 5.5% drivers/net 4.0% drivers/md 2.6% arch/arm
Red Hat clearly has a more generalist role in kernel development, making changes all over the tree and throughout the core.
The next two rows in the table are for the hobbyists and the unknowns. The corresponding maps of where they are working are:
Unknown affiliation (5080 total) Percent Directory Notes 22.6% drivers/staging 7.8% net 7.2% include 6.6% drivers/net 5.3% arch/arm 5.3% drivers/gpu 5.3% Documentation Mostly device-tree bindings 4.7% sound
No affiliation (4277 total) Percent Directory Notes 14.5% drivers/net 12.1% drivers/staging 10.7% net Mostly netfilter and batman-adv 7.6% include 6.7% drivers/media 5.8% Documentation 5.4% arch/arm 4.9% drivers/gpu 3.4% fs
To complete the set, here's the results from some of the other top companies:
IBM (2605 total) Percent Directory Notes 35.4% arch/powerpc 17.0% arch/s390 7.7% drivers/s390 5.9% tools 5.7% include 5.5% drivers/net 5.2% kernel
AMD (1788 total) Percent Directory Notes 82.7% drivers/gpu/drm/amd 4.6% drivers/gpu/drm/radeon 4.6% include 2.6% arch/x86
Linaro (4084 total) Percent Directory Notes 31.7% drivers/staging Mostly greybus 7.7% arch/arm 6.7% include 5.4% arch/arm64 4.3% drivers/net 4.0% Documentation device-tree bindings 3.6% drivers/gpu 2.6% drivers/mmc
Google (1956 total) Percent Directory Notes 17.4% net core and ipv4 mainly 14.7% include 11.1% drivers/staging greybus 10.2% drivers/pci 9.1% drivers/net 8.6% fs 5.6% arch/x86 4.5% drivers/input 4.3% Documentation 3.7% mm
SUSE (1896 total) Percent Directory Notes 28.4% fs 15% btrfs 16.5% include 11.1% mm 8.4% sound 8.3% arch/x86 6.8% drivers/scsi 6.3% drivers/md 4.2% kernel 4.0% Documentation
Clearly, each company is contributing to the kernel for its own reasons,
and each focuses its effort accordingly. Hardware-oriented companies have
a tendency to not look much beyond supporting their own products, while
companies that deal more directly with the end users have a more general
focus. Somehow, they all manage to work together and keep the kernel
process going and the community growing in a consistent and predictable
way.
Index entries for this article | |
---|---|
Kernel | Releases/4.12 |
Posted Jul 4, 2017 19:52 UTC (Tue)
by dankohn (guest, #6006)
[Link] (2 responses)
Posted Jul 5, 2017 5:48 UTC (Wed)
by pabs (subscriber, #43278)
[Link]
Posted Jul 5, 2017 18:10 UTC (Wed)
by dankohn (guest, #6006)
[Link]
In short, to get the numbers for (say) Intel, I do a normal-looking gitdm
-C "Intel" -f intel.files
That will (1) only look at commits from an Intel employee, and (2) put a
Posted Jul 5, 2017 6:24 UTC (Wed)
by dgm (subscriber, #49227)
[Link] (2 responses)
Posted Jul 5, 2017 7:11 UTC (Wed)
by gby (guest, #23264)
[Link]
Posted Jul 6, 2017 19:19 UTC (Thu)
by broonie (subscriber, #7078)
[Link]
Posted Jul 5, 2017 9:32 UTC (Wed)
by arnd (subscriber, #8866)
[Link]
https://docs.google.com/spreadsheets/d/15lFZZ_RygzGgwJSPc...
In 4.12 both staging and drm were really big compared to the rest. We have had previous releases in which one of them dominated the total patch count or diff size but not both at the same time, and we have other trees that are relatively big (net-next, tip, arm-soc, ...) but more constant.
Posted Jul 7, 2017 15:12 UTC (Fri)
by kdave (subscriber, #44472)
[Link] (1 responses)
Posted Jul 7, 2017 16:25 UTC (Fri)
by corbet (editor, #1)
[Link]
Posted Jul 30, 2017 15:31 UTC (Sun)
by andy_shev (subscriber, #75870)
[Link] (4 responses)
% sed -i -e 's/old_api_call/new_api_call/g' <list of affected files>
If number of list of affected files greate than let's say 100 she or he immediatelly poped up in the statistics, right? But it's not what we would like to see there for my point of view.
Posted Jul 30, 2017 19:09 UTC (Sun)
by corbet (editor, #1)
[Link] (3 responses)
Posted Jul 31, 2017 2:55 UTC (Mon)
by pabs (subscriber, #43278)
[Link] (1 responses)
Posted Jul 31, 2017 13:42 UTC (Mon)
by corbet (editor, #1)
[Link]
Posted Aug 1, 2017 16:21 UTC (Tue)
by andy_shev (subscriber, #75870)
[Link]
$ gt4tree.sh v4.12..origin/master
See the last name in the list, here. While I appreciate the work done by Arvind, it's still a mechanical routine which can be easily scripted (coccinelle, sed, etc).
Some 4.12 development statistics
Some 4.12 development statistics
Some 4.12 development statistics
run but add:
list of touched files in "intel.files". A "sort -rn" on that file will
put them into decreasing order, at which point the numbers are relatively
easy to pick out.
Some 4.12 development statistics
Some 4.12 development statistics
Some 4.12 development statistics
Some 4.12 development statistics
Some 4.12 development statistics
Yes, that's a manual fix for $REASONS; it got done then undone when I fixed an unrelated problem. Fixed again.
Some 4.12 development statistics
Some 4.12 development statistics
Nothing I've done here counts the number of affected files, so not necessarily. But I'll freely admit that the metrics used here — changesets and changed lines — are awful. I'd sure like to find something better if anybody has any good ideas.
Metrics
Metrics
As far as I've been able to tell, the results that come out of cregit closely match the (simpler) "by lines" metric.
Metrics
Metrics
Christoph Hellwig (246):
Mauro Carvalho Chehab (169):
Thomas Gleixner (143):
Takashi Iwai (130):
Chris Wilson (126):
Arvind Yadav (122):
...