boosting your performance in a connected world linuxcon ... · the things that i wish i knew before...
TRANSCRIPT
![Page 1: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/1.jpg)
Boosting your performance in a connected world
LinuxCon Europe 2014, 13.10.2014
![Page 2: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/2.jpg)
What can possibly go wrong :)/by Konrad Zapalowicz
Purpose of this talk
Agenda
![Page 3: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/3.jpg)
What can possibly go wrong :)/purpose of this talk
Although being fun to do and quite easy to start the Linux kerneldevelopment is considered hard, time consuming and it is saidthat it requires access to hardware. With this in mind many peoplemight hesitate to try it out. In this presentation Konrad is going touse himself, a newbie contributor, as an example of how easy it isto start what did he learn (during the Eudyptula challenge and so far)and how this knowledge can be used to submit patches andparticipate in the upstream kernel development.
![Page 4: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/4.jpg)
What can possibly go wrong :)/Agenda
WHOAMI
The Myths about Linux kernel programming
How to start (ways to contribute)
The things that I wish I knew before I started
![Page 5: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/5.jpg)
WHOAMI
Konrad Zapalowicz
Software Engineer at Cybercom Poland
Linux Enthusiast
Recent Linux Kernel contributor
Eudyptula Challenge Finalist
Runner dreaming of LR Defender
![Page 6: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/6.jpg)
Some say that/myths about Linux Kernel programming
Opinions on Linux Kernel programming
![Page 7: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/7.jpg)
Some say that/myths about Linux Kernel programming
Linux Kernel programming is considered hard and requires speciall skills
![Page 8: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/8.jpg)
Some say that/myths about Linux Kernel programming
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
![Page 9: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/9.jpg)
Some say that/myths about Linux Kernel programming
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
![Page 10: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/10.jpg)
Some say that/myths about Linux Kernel programming
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
Linux Kernel programming is time consuming
![Page 11: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/11.jpg)
Here comes the reality/myths explained
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
Linux Kernel programming is time consuming
![Page 12: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/12.jpg)
Here comes the reality/myths explained
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
Linux Kernel programming is time consuming
![Page 13: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/13.jpg)
Here comes the reality/myths explained
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
Linux Kernel programming is time consuming
![Page 14: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/14.jpg)
Here comes the reality/myths explained
Linux Kernel programming is considered hard and requires speciall skills
Linux Kernel programming requires access to special hardware
Linux Kernel programming is pointless because all drivers had been written
Linux Kernel programming is time consuming
![Page 15: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/15.jpg)
Here comes the reality/myths explained
Linux Kernel programming is about C language
Linux Kernel programming can be done on x86
Linux Kernel programming is not only about writing drivers
Linux Kernel programming is when you have time for it, no stress
![Page 16: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/16.jpg)
Ways of contributing/how to start the journey
So we know that this is doable,but how to start the journey
![Page 17: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/17.jpg)
Ways of contributing/how to start the journey
Improve the code quality
![Page 18: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/18.jpg)
Ways of contributing/how to start the journey
Improve the code quality
Do missing parts (the TODOs)
![Page 19: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/19.jpg)
Ways of contributing/how to start the journey
Improve the code quality
Do missing parts (the TODOs)
Work in the drivers/staging area
![Page 20: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/20.jpg)
Ways of contributing/how to start the journey
Improve the code quality
Do missing parts (the TODOs)
Work in the drivers/staging area
Fix Kernel oops (if you find one)
![Page 21: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/21.jpg)
Improve code quality/the scripts/checkpatch.pl tool
konrad in linux-mainline on master% scripts/checkpatch.pl --strict --terse -f ./drivers/dma/mmp_pdma.c
./drivers/dma/mmp_pdma.c:335: CHECK: Please don't use multiple (...)
./drivers/dma/mmp_pdma.c:439: WARNING: void function return (...)
./drivers/dma/mmp_pdma.c:815: WARNING: else is not generally (...)
./drivers/dma/mmp_pdma.c:898: WARNING: Missing a blank line (...)
./drivers/dma/mmp_pdma.c:1057: WARNING: line over 80 characterstotal: 0 errors, 4 warnings, 1 checks, 1126 lines checked
![Page 22: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/22.jpg)
Improve code quality/the scripts/checkpatch.pl tool
konrad in linux-mainline on master% scripts/checkpatch.pl --strict --terse -f ./drivers/dma/mmp_pdma.c
./drivers/dma/mmp_pdma.c:335: CHECK: Please don't use multiple (...)
./drivers/dma/mmp_pdma.c:439: WARNING: void function return (...)
./drivers/dma/mmp_pdma.c:815: WARNING: else is not generally (...)
./drivers/dma/mmp_pdma.c:898: WARNING: Missing a blank line (...)
./drivers/dma/mmp_pdma.c:1057: WARNING: line over 80 characterstotal: 0 errors, 4 warnings, 1 checks, 1126 lines checked
![Page 23: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/23.jpg)
Improve code quality/the sparse tool
konrad in linux-mainline on master% make C=1 M=drivers/staging/dgnc
(now the sparse tool is being run for each file that is compiled)
konrad in linux-mainline on master%
![Page 24: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/24.jpg)
Improve code quality/the sparse tool
konrad in linux-mainline on master% make C=1 M=drivers/staging/dgnc
(now the sparse tool is being run for each file that is compiled)
konrad in linux-mainline on master%
![Page 25: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/25.jpg)
Do the missing parts/the TODOs
konrad in linux-mainline on master% find . -name "TODO" | wc -l53konrad in linux-mainline on master% find . -name "README" | wc -l55
![Page 26: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/26.jpg)
The drivers/staging
Perfect place to start
Read the driverdev.linuxdriverproject.org Mailing List
![Page 27: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/27.jpg)
Fix Kernel OOPS
Track and fix OOPS on your machine
![Page 28: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/28.jpg)
Fix Kernel OOPS
Track and fix OOPS on your machine
Find inspiration at bugzilla.kernel.org
![Page 29: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/29.jpg)
Many Ways of Contributing
Work on the drivers/staging code
Get inspiration from the TODOs and READMEs
Know what is happening around you (read Mailing Lists)
Improve code quality thus learn the code
![Page 30: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/30.jpg)
It helps when you know it
The stuff that helps if you know it
![Page 31: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/31.jpg)
It helps when you know it/Git
Working with branches
Dividing the work into small chunks
The patches are best when served via git send-email
The git rebase -i is life saver
![Page 32: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/32.jpg)
It helps when you know it/Mailing Lists
The archives contain good stuff
Old patches from similar code might be a good hint
![Page 33: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/33.jpg)
It helps when you know it/Noone owns a task
Someone else might be working on the same stuff
![Page 34: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/34.jpg)
It helps when you know it/The coding style
Yes, the people are serious about the coding standardand how the patches shall be formatted.
![Page 35: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/35.jpg)
Summary
It is fairly easy to do the Linux Kernel development
You can start with the drivers/staging area
Fix the coding style issues
When ready move on to the next challenges
Read The F Mailing Lists
![Page 36: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/36.jpg)
kthxbye
The End
![Page 37: Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before I started. WHOAMI Konrad Zapalowicz Software Engineer at Cybercom Poland Linux](https://reader034.vdocuments.us/reader034/viewer/2022052102/603bd9023b49c15510293395/html5/thumbnails/37.jpg)
Boosting your performance in a connected world
LinuxCon Europe 2014, 13.10.2014