+ All Categories
Home > Documents > Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before...

Boosting your performance in a connected world LinuxCon ... · The things that I wish I knew before...

Date post: 09-Oct-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
37
Boosting your performance in a connected world LinuxCon Europe 2014, 13.10.2014
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Boosting your performance in a connected world

LinuxCon Europe 2014, 13.10.2014


Recommended