31
Trying to Explain the ”Incomprehensible” Decision Making Process of a Subsystem Maintainer Wolfram Sang Consultant / Renesas Upstream Kernel Team 13.10.2016, Embedded Linux Conference Europe 2016 Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 1 / 31

Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Embed Size (px)

Citation preview

Page 1: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Trying to Explain the ”Incomprehensible” DecisionMaking Process of a Subsystem Maintainer

Wolfram Sang

Consultant / Renesas Upstream Kernel Team

13.10.2016, Embedded Linux Conference Europe 2016

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 1 / 31

Page 2: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Overview

1 The root cause

2 What does that mean?

3 What you can do (or shouldn’t do)

4 Changes to I2C subsystem workflow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 2 / 31

Page 3: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Overview

1 The root cause

2 What does that mean?

3 What you can do (or shouldn’t do)

4 Changes to I2C subsystem workflow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 3 / 31

Page 4: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Maintainer role: different from a developer

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

.”

I think at least ”educator” needs to be added, too.

1link hereWolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 4 / 31

Page 5: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of patches

0

2000

4000

6000

8000

10000

12000

14000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumCommits

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 5 / 31

Page 6: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of patches (linearized)

0

2000

4000

6000

8000

10000

12000

14000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumCommits

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 6 / 31

Page 7: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Additional info

Merges not countedBut they are work, too

Stats only based on accepted patchesThere are also superseded and rejected patches, teaching new authors…

Situation at v3.0 was already far from ideal

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 7 / 31

Page 8: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of tags

0

2000

4000

6000

8000

10000

12000

14000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumCommitsNumAcksNumRevsNumTests

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 8 / 31

Page 9: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of tags (linearized)

0

2000

4000

6000

8000

10000

12000

14000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumCommitsNumAcksNumRevsNumTests

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 9 / 31

Page 10: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: commits with tags (percentage)

0

20

40

60

80

100

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

HasTagHasTag

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 10 / 31

Page 11: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of people

0

200

400

600

800

1000

1200

1400

1600

1800

2000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumAuthorsNumCommitters

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 11 / 31

Page 12: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: # of people (linearized)

0

200

400

600

800

1000

1200

1400

1600

1800

2000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumAuthorsNumCommitters

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 12 / 31

Page 13: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Statistics: more # of people (mostly linearized)

0

200

400

600

800

1000

1200

1400

1600

1800

2000

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

NumAuthorsNumCommitters

RevNotCommitterRevNotCommitter

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 13 / 31

Page 14: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Unprocessed patches (up to now)

0

50

100

150

200

250

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

linux-i2c (72 commits in 4.8)

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 14 / 31

Page 15: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Unprocessed patches (skipping last cycles)

0

10

20

30

40

50

60

70

80

90

100

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

linux-i2c (72 commits in 4.8)

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 15 / 31

Page 16: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Unprocessed patches (normalized): a trend?

0

0.2

0.4

0.6

0.8

1

v3.0 v3.5 v3.10 v3.15 v4.0 v4.5

2011 2012 2013 2014 2015 2016

linux-btrfslinux-ext4

linux-i2clinux-media

linux-mtdlinux-nvdimm

rtc-linux

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 16 / 31

Page 17: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

I dare to disagree

LWN on May 11th, 2016Quote:”The overall picture ... is one of a development process that continues tofunction like a relatively well-tuned machine. The number of contributorscontinues to increase, the patch flow is steady, and there do not appear tobe many process-scalability issues in sight.”

I think there is a scalability problemI am neither a machine nor part of a machineactually I am full of human factors ;)

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 17 / 31

Page 18: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Overview

1 The root cause

2 What does that mean?

3 What you can do (or shouldn’t do)

4 Changes to I2C subsystem workflow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 18 / 31

Page 19: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

In what order patches are processed?

Factors affecting when a patch is processedYou help me, I help youtypical human factor, I’d assume

Kernel-wide or cross-subsystem effortif I2C is only one part of it

number of affected usersregression?

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 19 / 31

Page 20: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

In what order patches are processed?

Factors affecting when a patch is processedcomplexitypolished or notchronological ordera lot less important than I’d like to

new driver?rc1 rule might apply

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 20 / 31

Page 21: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

This needs to be done, too

Things mainly maintainers care aboutremoval of obsolete features from 2.4 timeslargely means messing with PowerMac drivers

refactoring the I2C core to ease maintenancesplit up the core into parts which can be maintained seperatelygive users better testing toolsupdate documentation & wiki page

Most of that is currently delayed for years!

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 21 / 31

Page 22: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Overview

1 The root cause

2 What does that mean?

3 What you can do (or shouldn’t do)

4 Changes to I2C subsystem workflow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 22 / 31

Page 23: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

What you can do: Users2

Give feedbackgive comments about patchesshow interest, tell about issues, …

give tagsTested-by! Very important one, no need to be a coder for that

2as in ”users of patches”Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 23 / 31

Page 24: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

What you can do: Developers

Always give your best shotmissing experience is no problemsloppiness is a problembe honest, give reasons for suboptimal solutionsfor companies, look for in-house knowledge

have your tools readyidentify repititive tasks, automize themKeyboard shortcuts!

run (& understand) those code checkers! Always!checkpatch, sparse, smatch, cocciscript

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 24 / 31

Page 25: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

What you can do: Developers

review your own patchesdon’t just send a pingIf you didn’t touch the patch for a while and have some distance, youare a potential reviewer as well→ big credit boost

take part in further reviewingreviewdiscussclean up, consolidateif you are interested, become a (sub-)maintainer

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 25 / 31

Page 26: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

What you shouldn’t do

ping considered harmful”ping after 2 weeks” is outdated”ping after 2 month” would be closer to reality

largely not neededall people I know have patch tracking systems in place

I won’t reply anywayI could review patches in that time…

Human factor: they still add to frustrationalthough I do know the latency is not my fault

Private pings are especially badreviewing should be a community effort

If you still need to ping, try to think if you can help somehow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 26 / 31

Page 27: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Overview

1 The root cause

2 What does that mean?

3 What you can do (or shouldn’t do)

4 Changes to I2C subsystem workflow

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 27 / 31

Page 28: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Maintainer role: ”old”

What is a maintainer? Trond Myklebust said it nicely3:

”Currently, the Linux maintainer appears to be responsible for filling all ofthe traditional roles of:

software architectsoftware developerpatch reviewerpatch committerand software maintainer

.”

”educator”3link hereWolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 28 / 31

Page 29: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Maintainer role: new

What is a maintainer4 in the future?

software architectone of the software architectssoftware developerone of the software developerspatch reviewerone of the patch reviewerspatch committersoftware maintainer(new focus!) advertiser for distributed community efforts

4well, at least the I2C maintainerWolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 29 / 31

Page 30: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Changes to I2C

Disadvantagesexpect bigger latencies

AdvantagesI keep sane…because I am neither a machine nor part of a machine

can spend more time fixing this issue on higer levels

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 30 / 31

Page 31: Trying to Explain the ''Incomprehensible'' Decision Making ... · PDF fileTrying to Explain the ”Incomprehensible” Decision Making Process of a ... Factors affecting when a

Thank you for your attention!

Let’s work togetherQuestions?

Right here, right now…Later at the [email protected]

Breaking newsat the GPL BoF lunch todaymeeting at the lobby

Wolfram Sang (Consultant) Trying to explain maintainers 13.10.2016, ELCE2016 31 / 31