jonathan corbet lwn.net [email protected]/images/pdf/google-class/05-ps-process.pdf · “hey, all...
TRANSCRIPT
![Page 2: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/2.jpg)
What this section is about
An attempt to share some experience on how things go wrong.
Here we'll focus on process issues.
![Page 3: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/3.jpg)
Failures
Looking at failures is instructiveSo we'll do some of that
Please note:No disrespect is intended
![Page 4: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/4.jpg)
“A bridge, under its usual conditions of service, behaves simply as a relatively smooth level surface on which vehicles can move. Only when it has been overloaded do we learn the physical properties of the materials from which it is built.” -- Herbert Simon
![Page 5: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/5.jpg)
“Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't fail, I just found three other ways not to fix your bug.” -- Linus Torvalds
![Page 6: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/6.jpg)
How can one avoid failing?
![Page 7: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/7.jpg)
Let your developers participate
Community-connected developers are:HappierMore productiveMore influential
![Page 8: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/8.jpg)
Attend developer conferences
Linux-KongressLinuxConFOSDEMlinux.conf.auFISLLinux Plumbers Conference...
![Page 9: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/9.jpg)
You'll learn...
What's happening in the community
Developments of interest to you
...
Who your peers are
![Page 10: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/10.jpg)
Develop skills in house
Chasing established developers is expensive and difficult
It's not a zero-sum game.
![Page 11: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/11.jpg)
Getting started
The “kernel janitors project” has a TODO list
Ignore it
Please do not start posting white space fixes.
![Page 12: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/12.jpg)
Getting started
The #1 project for all kernel beginners should surely be “make sure that the kernel runs perfectly at all times on all machines which you can lay your hands on.”-- Andrew Morton
In other words:Fix bugs
![Page 13: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/13.jpg)
Getting started
Review code
You can learn a lot from reading and understanding other people's code. Study the things posted, and ask why things are done specific ways, and point out problems that you have noticed. It's a task that the kernel really needs help with right now.-- Greg Kroah-Hartman
![Page 14: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/14.jpg)
Design your processes around participation
“We can't release any code which has not been through internal QA” is a recipe for disaster.
![Page 15: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/15.jpg)
Communicate your plans
Early!
![Page 16: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/16.jpg)
Case study: Tux3
A next-generation filesystem by Daniel Phillips
2008-07-23 Initial announcement2008-11-25 Booting as root filesystem ...2009-08-16 Last commit
![Page 17: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/17.jpg)
“Do NOT fall into the trap of adding more and more stuff to an out-of-tree project. It just makes it harder and harder to get it merged. There are many examples of this.” -- Andrew Morton
![Page 18: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/18.jpg)
Daniel kept adding features...then lost interest
![Page 19: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/19.jpg)
“Anyway, Andrew Morton was right, we should have merged into mainline as soon as Tux3 was booting as root.” -- Daniel Phillips
![Page 20: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/20.jpg)
Lessons
Out-of-tree code is nearly invisibleFew usersFew contributorsLittle momentum
![Page 21: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/21.jpg)
Photo: Team Traveller
![Page 22: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/22.jpg)
Lessons
Get it into the mainline early!
![Page 23: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/23.jpg)
Seek influence, not control
![Page 24: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/24.jpg)
Case study: em28xx
...a video4linux driver
2005-11-08 Initial driver merge...2008-01-05 Markus Rechberger's final
em28xx patch2008-11-02 Replacement patch rejected2009-08-09 Markus's final kernel patch
![Page 25: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/25.jpg)
“Companies should be aware that if they try to submit any code to you they will loose the authority over _their_ work.” -- Markus Rechberger
![Page 26: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/26.jpg)
Another example
May, 2004Hans Reiser tries to block the addition of new functionality to reiserfs.
![Page 27: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/27.jpg)
“The fact is, maintainership does _not_ mean ownership. It means that you should be _responsible_ for the code, and you get credit for it, but if problems happen you do NOT “own” it. Not at all.” -- Linus Torvalds
![Page 28: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/28.jpg)
Lessons
Contributing means losing control
Others will improve your code
![Page 29: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/29.jpg)
Photo: Yuliya Libkina
![Page 30: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/30.jpg)
Seek influence, not control
Influence comes fromcommunity participationcode contributions
Dan Frye's advice:Have your developers immersed in the community
![Page 31: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/31.jpg)
Case study: the deadline scheduler
Con Kolivas's scheduler rewrite
2007-03-04 First post2007-03-05 Linus amenable to merging2007-03-19 Linus gets irritated2007-04-13 Molnar posts CFS2007-07-10 CFS merged for 2.6.232007-07-25 Con leaves the kernel
community
![Page 32: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/32.jpg)
Understand that some things are easy to merge
Drivers!Obscure architecture-specific code...
![Page 33: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/33.jpg)
Some things are harderOoh you have a VM patch that helps swap on the desktop! I can help you here with my experience from swap prefetch:
1: Get it reviewed and have noone show any evidence it harms2: Find hundreds of users who can testify it helps3: Find a way of quantifying it4: ...5. Merge into mainline
I haven't figured out what 4 is yet. I believe it may be goto 1.
-- Con Kolivas
![Page 34: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/34.jpg)
Expect delays for...
Memory management changesCore filesystem workSecurity policiesScheduler changes...
![Page 35: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/35.jpg)
Improve the kernel for everybody
...or at least don't make it worse
![Page 36: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/36.jpg)
Seek outcomes, not credit
The best solution might not be yours
Dan Frye again:IBM rewards engineers who push a solution forward regardless of whether their code is merged.
![Page 37: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/37.jpg)
Participate in the wider discussion-ck list did not help
![Page 38: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/38.jpg)
Mailing lists
Linux-kernel is intimidating500 messages/dayVariable politeness
But: it's where things happen
Options:Filter heavilyRead LWN
![Page 39: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/39.jpg)
Subsystem lists
Many of them existnetdevlinux-mmlinux-scsi...
vger.kernel.org/vger-lists.html
![Page 40: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/40.jpg)
Subsystem lists
Can be easier environments
Sometimes the only place to benetdev
Not popular with all developersTend to hide conversations and problemsCan make interactions harder
When in doubt: copy linux-kernel
![Page 41: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/41.jpg)
List etiquette
Never remove Cc'sHey, I was reading that! Please do *not* go making modifications to Cc: lists. Just do reply-to-all and be happy, thanks.-- Andrew Morton
Copy others liberallyDo not assume they will see something on the list.
No top-posting
![Page 42: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/42.jpg)
Good subject lines
Volume on l-k is huge and the best strategy is to get mail recognized as relevant and to have reviewers' estimate of priority before looking into the thing more or less close to that after. We all have heuristics; defeat these too often and you will *become* one.-- Al Viro
![Page 43: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/43.jpg)
One other thing...
Avoid internal lists!
Have discussions in public whenever possible.
![Page 44: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/44.jpg)
Follow through
“Throwing it over the wall” is not appreciated
...but it's better than nothing.
![Page 45: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/45.jpg)
Don't break things
![Page 46: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/46.jpg)
Case study: 2.5.x IDE
2002-02-15 Martin Dalecki's first “IDE cleanup” patch
2002-03-08 IDE18, subsystem takeover2002-08-09 IDE115 merged2002-08-16 Martin quits, all IDE work
reverted
![Page 47: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/47.jpg)
“Breakage is the price you have to pay for advancements” -- Martin Dalecki
![Page 48: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/48.jpg)
Lessons
Breaking things isa bad idea.
![Page 49: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/49.jpg)
Case study: reiser4
2002-10-29 First code post2003-07-24 2.6.0-test merge request2004-08-19 Added to 2.6.8.1-mm22005-09-11 Push for 2.6.142006-07-20 Push for 2.6.192006-10-11 Hans Reiser arrested
![Page 50: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/50.jpg)
What were the problems?
Non-POSIX filesystem behaviorNumerous technical difficultiesHard-to-reproduce benchmarksAntagonistic approach to othersMemories of reiser3
![Page 51: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/51.jpg)
Linux is not a research system
![Page 52: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/52.jpg)
Visionary brilliance will not excuse a poor implementation
![Page 53: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/53.jpg)
Lessons
It's better not to accuse others of conspiring against you
Photo: Rob!
![Page 54: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/54.jpg)
Don't take it personally
They don't hate you...or your company...or your objectives
![Page 55: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/55.jpg)
The community remembers past actions
Developers also think far into the future
Photo: krupp
![Page 56: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/56.jpg)
Market changes to developers
![Page 57: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/57.jpg)
Case study: SystemTap
2003-11 DTrace debuts2005-10 RHEL4 introduces SystemTap2008-07 FTrace merged2009-06 Perf Events merged2009-09-22 SystemTap 1.0 released???? SystemTap merged
![Page 58: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/58.jpg)
2008 Kernel Summit
50% had tried to use SystemTap20% succeeded
![Page 59: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/59.jpg)
“I thought everyone learned the lesson behind SystemTap's failure: when it comes to tooling/instrumentation we don't want to concentrate on the fancy complex setups and abstract requirements drawn up by CIOs as development isn't being done there. Concentrate on our developers today, and provide no-compromises usability to those who contribute stuff.” -- Ingo Molnar
![Page 60: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/60.jpg)
In other words...
If kernel developers don't see the value...it won't go in.
![Page 61: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/61.jpg)
Related case study: TALPA
Posted in August 2008Never merged as such
The goal:Provide hooks for virus scanners
![Page 62: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/62.jpg)
Problems with TALPA
Kernel developers disliked itWhy bother with broken security models?
Badly-expressed requirementsNo threat modelSolutions not needs
![Page 63: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/63.jpg)
Communicate your requirements
What is the problem to be solved?Use cases?
Requirements should be “what,” not “how.”
![Page 64: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/64.jpg)
Listen
![Page 65: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/65.jpg)
Enter fanotify
Merged in August, 2010 (2.6.36)
Provides hooks for virus scanners
![Page 66: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/66.jpg)
What changed?
Featured a cleanup of file event notification
Replaced inotify and dnotify
Rephrased requirement:“Enable virus scanners to hook into file operations without using rootkit techniques.”
![Page 67: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/67.jpg)
Lessons
Patches must be sold to developersNot managers or customers
Cleaning things up builds goodwill
![Page 68: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/68.jpg)
What if things seem blocked?
Andrew Morton...is the maintainer of last resort.
![Page 69: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/69.jpg)
In conclusion
The process may seem full of hazards...but it's not that hard
Common sense and listening will see you through
...most of the time
![Page 70: Jonathan Corbet LWN.net corbet@lwnlwn.net/images/pdf/google-class/05-ps-process.pdf · “Hey, all my other theories made sense too. They just didn't work. But as Edison said: I didn't](https://reader033.vdocument.in/reader033/viewer/2022051606/601c5e89e6455c55db49e63c/html5/thumbnails/70.jpg)
Questions?