maintainer's diary: we have a scaling problem
TRANSCRIPT
.
...... Maintainer’s Diary: We have a scaling problem
Wolfram Sang
Consultant
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 1 / 24
Statistics: # of patches
0
2000
4000
6000
8000
10000
12000
14000
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
NumPatches
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 2 / 24
Statistics: # of people
0
200
400
600
800
1000
1200
1400
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
NumAuthorsNumCommitters
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 3 / 24
Statistics: increase of people
0
200
400
600
800
1000
1200
1400
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
NumAuthorsNumCommitters
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 4 / 24
Additional info
Stats only based on accepted patchesThere are also superseded, rejected patches, teaching new authors…
Situation at v3.0 was already far from ideal
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 5 / 24
Can we offload tasks?
.What is a maintainer? Trond Myklebust said it nicely1:..
......
”Currently, the Linux maintainer appears to be responsible for filling all ofthe traditional roles of
software architectsoftware developerpatch reviewerpatch committerand software maintainer.”
1link hereWolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 6 / 24
First thing to notice
Yes, this is a rare bunch!2
2but they usually have fun doing that :)Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 7 / 24
Statistics: # of people (with supporters)
0
200
400
600
800
1000
1200
1400
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
NumAuthorsNumCommitters
DiffTestsDiffRevs
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 8 / 24
Statistics: increase of people (with supporters)
0
200
400
600
800
1000
1200
1400
3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10
NumAuthorsNumCommitters
DiffTestsDiffRevs
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 9 / 24
A typical (simple) SoC
System ControllerAdvanced Int. Ctrl.
Power Mgt. Ctrl.
PLL
Osc
RC Osc
Reset Ctrl.
Brownout Detect
Power On Reset
Prog. Int. Timer
Watchdog Timer
Real Time Timer
Debug Unit
PID Ctrl.
JTAGScan
VoltageRegulator
PeripheralBridge
Mem
ory
Con
trol
ler EBI
SRAM
Flash
FlashProgrammer
PeripheralData Controller
Application-SpecificLogic
CAN
USB
PWM
SD/MMC
Framebuffer/DisplayADC
I2C / TWI
SPI
UART
Ethernet
PIO
ARMProcessor
PIO
PIO
AP
BA
SB
/A
HB
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 10 / 24
Statistics: Subsystem Latency
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 28 56 84 112 140 168
net/ethernet (5143 commits)
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 11 / 24
Statistics: Subsystem Latency
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 28 56 84 112 140 168
mtd (1301 commits)
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 12 / 24
Statistics: Subsystem Latency
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 28 56 84 112 140 168
i2c (621 commits)
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 13 / 24
Statistics: Subsystem Latency
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 28 56 84 112 140 168
i2c (621 commits)watchdog (326 commits)
net/ethernet (5143 commits)gpio (705 commits)
mtd (1301 commits)mmc (1125 commits)
dma (798 commits)video (1991 commits)
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 14 / 24
Statistics: Subsystem Latency
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 7 14 21 28
i2c (621 commits)watchdog (326 commits)
net/ethernet (5143 commits)gpio (705 commits)
mtd (1301 commits)mmc (1125 commits)
dma (798 commits)video (1991 commits)
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 15 / 24
Additional info
Again: Stats only based on accepted patches
There are also totally valid patches which got lostCouldn’t find a way to measure that, though
Weather forecast: Situation will get worseExpect either increased latency or questionable patches coming in
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 16 / 24
What you can do: Users3
.Give feedback..
......
give comments about patchesgive tags (Tested-by:)
.resend overlooked patches..
......
only if you still use and need themcheck if there are open issuesresend
3as in ”users of patches”Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 17 / 24
What you can do: Developers
.Always give your best shot..
......
missing experience is no problemsloppiness is a problembe honest, give reasons for suboptimal solutions
.take part in Q&A..
......
reviewreview your own patchesdiscussclean up, consolidateif you are interested, become a maintainer
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 18 / 24
What you can do: Maintainers
.Work harder…not!..
......
we don’t need burnoutbe aware of the fast-forward button
.have your tools ready..
......
yeah, workflow is highly subjective……still check with other maintainers what is out thereMy top three recommendations
keyboard shortcutsgit hookspatchworkdid you know it collects tags for you?
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 19 / 24
What you can do: Maintainers
.automize tasks..
......
really pay atterntion to boring, repititive taskshave I mentioned proper tools?
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 20 / 24
What you can do: Organizations
.allow developers to take part in Q&A..
......
some really want to if allowedthose will improve their skills a lot
.educate internally..
......
OK to ask maintainer for subsystem specific helpnot OK to let maintainers teach basic stuffif I know you have people inhouse which can do the same
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 21 / 24
What you can do: Organizations
.be aware that things might take time..
......we are trying to be fast, yet there is overload
.see maintaining as a job on its own..
......
worth being paid for, directly or indirectlyindependent maintainers are best, see Linus or Gregalthough with enough credit, it will work, too
probably the item to improve the situation
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 22 / 24
Paid/supported maintainers
System ControllerAdvanced Int. Ctrl.
Power Mgt. Ctrl.
PLL
Osc
RC Osc
Reset Ctrl.
Brownout Detect
Power On Reset
Prog. Int. Timer
Watchdog Timer
Real Time Clock
Debug Unit
PID Ctrl.
JTAGScan
VoltageRegulator
PeripheralBridge
Mem
ory
Con
trol
ler EBI
SRAM
Flash
FlashProgrammer
PeripheralData Controller
Application-SpecificLogic
CAN
USB
PWM
SD/MMC
Framebuffer/DisplayADC
I2C / TWI
SPI
UART
Ethernet
PIO
ARMProcessor
PIO
PIO
AP
BA
SB
/A
HB
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 23 / 24
Thank you for your attention!
Let’s go for it!.Questions?..
......
Right here, right now…Later at the [email protected]
Wolfram Sang (Consultant) We have a scaling problem 24.10.2013, ELC-E 2013 24 / 24