Tero Roponen. Contents My background About the research Current status Examples Future work.

Slides:



Advertisements
Similar presentations
Welcome Back to School!!! Mr. Sortina.
Advertisements

Ági Hello. My name’s Ági and I’m a 10th course student in our grammar school. I really feel good here, love my classmates, we have been getting on well.
Word List A.
May Ranch Science Fair 2014.
Powerpoint: A Different Whiteboard Dr. Thomas Douglas St. John Fisher College 01/09/2008.
I’m made of wax. Larry, what are you made of? By Chris Mouse.
SOME THOUGHTS ON WAYS TO MAKE WRITING EASIER English 1101 Karen Roop.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
What’s in a device driver?. Role of the OS Protect data and resources (file permissions, etc.) Provide isolation (virtual memory, etc.) Abstract away.
Motivation Lecture Master seminar, January Contents Introduction Importance of regular work Theses with programming Publishing your work Conclusion.
Concurrent & Distributed Systems Lecture 3: Processes interacting by sharing resources Asynchronous processes can interact by sharing a common resource.
Writing a website article to give advice
1  2004 Morgan Kaufmann Publishers Chapter Six. 2  2004 Morgan Kaufmann Publishers Pipelining The laundry analogy.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
Time Management.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Concurrency Recitation – 2/24 Nisarg Raval Slides by Prof. Landon Cox.
A Moderately Directed Rant.  It’s very likely that you’ve been writing totally incorrect code without realizing it  Once you do realize it, it’s usually.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Chapter 6.7 Determinants. In this chapter all matrices are square; for example: 1x1 (what is a 1x1 matrix, in fact?), 2x2, 3x3 Our goal is to introduce.
The Internet Explained
1 Welcome to CS 362 Applied Software Engineering What happens after (and during) design? Testing, debugging, maintaining programs Lessons for software.
A SIR web based leave/absence management system. By Dave Doulton University of Southampton.
Git – versioning and managing your software L. Grewe.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Primes and Tests for Divisibility Chapter 5 Section 1 By: Tiffany Fey.
How to read at a university research level LO Storyboard.
Maintainability of FLOSS Projects
Software Engineering Experimentation Rules for Reviewing Papers Jeff Offutt See my editorials 17(3) and 17(4) in STVR
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Powerpoint Presentations Problems. Font issues #1 Some students make the font so tiny that it cannot be read.
2.5 Implicit Differentiation
Dr. Richard Ford  Szor 12  Virus Scanners – why they need to scan memory and what issues there are in this area.
© A. Kwasinski, 2014 ECE 2795 Microgrid Concepts and Distributed Generation Technologies Spring 2015 Week #7.
Step 2: Inviting to Challenge Group. DON’T! Before getting into the training, it’s important that you DON’T just randomly send someone a message asking.
MENTORING ACCORDING TO THE PRACTICE OF CENTRAS Constantza Mamaia 2- 3 June 2011.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
MA 1128: Lecture 17 – 6/17/15 Adding Radicals Radical Equations.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
Documentation. Your documentation must fit the needs of your audience. It’s always better to say one thing that is useful, as opposed to many things that.
Kernel Locking Techniques by Robert Love presented by Scott Price.
What to expect or Now that I have gotten used to Prof. Fitzpatrick, here is this new guy with his weird foreign accent…
How great ideas are KILLED Everything here is fictional. Some things may look like the real world.* v.1.0 *Except for Mario sprites, of course.
1 © Alexis Kwasinski, 2012 Papers writing tips Paper structure: Abstract Introduction 1) What is the paper about? What problem/issue are you addressing?
Embedded Linux Day 2. Stuffs HW1 posted today – Shooting for 1-2 hours. – Review scheduling stuff & licensing. HW0 in lab Sign up for group meetings for.
Scalatest. 2 Test-Driven Development (TDD) TDD is a technique in which you write the tests before you write the code you want to test This seems backward,
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
{ What is a Number? Philosophy of Mathematics.  In philosophy and maths we like our definitions to give necessary and sufficient conditions.  This means.
 time flies  This common idiom means that time passes quickly.  'Time flies when you are having fun.'
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
Audio Timestretching Adam Lederer Prototype Slideshow.
CSE 143 Lecture 13 Recursive Backtracking slides created by Ethan Apter
1 Why Threads are a Bad Idea (for most purposes) based on a presentation by John Ousterhout Sun Microsystems Laboratories Threads!
© 2015 albert-learning.com How to talk to your boss How to talk to your boss!!
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
How to Really Review Papers CS 8803 AIC. Prvulovic: CORD 2 Paper Reviewing Algorithm Read the paper Think about it Take a look at related work Leave it.
Lecture 5 Page 1 CS 111 Online Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command.
课标人教实验版 高二 Module 6 Unit 3. Listening on workbook.
How To Get Involved In Open Source Nick Burch Senior Developer, Alfresco Software VP ConCom, ASF Member.
Process Creation Processes get created (and destroyed) all the time in a typical computer Some by explicit user command Some by invocation from other running.
Modularity and Memory Clearly, programs must have access to memory
Hold up, wait a minute, let me put some async in it
Mastering Memory Modes
BIG BANG NOTES! This is the introduction page of the notes. If you click on the small blue dot the phrase “Big Bang Notes!” appears in a starburst. If.
CSE 153 Design of Operating Systems Winter 19
Binary It’s all 0’s and 1’s.
Arrays.
Software Development Techniques
Presentation transcript:

Tero Roponen

Contents My background About the research Current status Examples Future work

My background (1/2) Tero Roponen ( ????) Bachelor of Engineering in Programming Techniques Jyväskylä Polytechnic, 2003 Master of Science in Software Engineering University of Jyväskylä, 2007 PhD student since 2008

My background (2/2) Linux user since 1997 Some minor contributions to Open Source projects with varying success: “Thanks for the report.” (GIT) “Thanks, applied.” (Cogito) “Whoa. Impressed.” (Linux kernel) “tero is in the real pro category, lots to learn from him” (Tux3 filesystem)

About the research Free/Libre/Open Source Software (FLOSS) Evolution: Information for Program Comprehension In Linux and other Systems

Goals Identify fundamental problems in today’s software (i.e. Linux)

Goals Identify fundamental problems in today’s software (i.e. Linux) not ordinary bugs but something more… fundamental e.g. why a filesystem can’t handle files bigger than 2 gigabytes

Goals Identify fundamental problems in today’s software (i.e. Linux) not ordinary bugs but something more… fundamental e.g. why a filesystem can’t handle files bigger than 2 gigabytes Find design decisions behind these problems

Goals Identify fundamental problems in today’s software (i.e. Linux) not ordinary bugs but something more… fundamental e.g. why a filesystem can’t handle files bigger than 2 gigabytes Find design decisions behind these problems e.g. “2 gigabytes should be enough for all”

Goals Identify fundamental problems in today’s software (i.e. Linux) not ordinary bugs but something more… fundamental e.g. why a filesystem can’t handle files bigger than 2 gigabytes Find design decisions behind these problems e.g. “2 gigabytes should be enough for all” Try to learn from the past mistakes

Goals Identify fundamental problems in today’s software (i.e. Linux) not ordinary bugs but something more… fundamental e.g. why a filesystem can’t handle files bigger than 2 gigabytes Find design decisions behind these problems e.g. “2 gigabytes should be enough for all” Try to learn from the past mistakes “64 bits is enough, or is it? Let’s make it 128”

Method (1/3) To locate a problem reading developer mailing-lists is required.

Method (1/3) To locate a problem reading developer mailing-lists is required. To understand the problem reading source code is required.

Method (1/3) To locate a problem reading developer mailing-lists is required. To understand the problem reading source code is required. To understand the source code understanding the design decisions is required.

Method (1/3) To locate a problem reading developer mailing-lists is required. To understand the problem reading source code is required. To understand the source code understanding the design decisions is required. To understand the design decisions reading developer mailing-lists is required.

Method (2/3) In practice: Study the problem at hand until you know what it does and why it happened. Look out for similarities between different problems. Repeat these a few times, then write a paper discussing the findings and the experience.

Method (3/3) Theoretical background What is Free/Open Source Software? How is it developed? What is a patch?

Method (3/3) Theoretical background What is Free/Open Source Software? How is it developed? What is a patch? There is no real answer to the last question in the literature – yet.

Current status (1/2) First article will be about patches: Patches as a Subject of Development & Research in the Context of Free/Libre/Open Source Software

Current status (2/2) First article Work-in-progress About 25 pages long From abstract: “ In this article we take a deep look at patches: what they are, how they are being used and what information they can provide. With these issues in mind we propose a new framework for dealing with patches both in the development and research context.”

From: Tero Roponen Date: Sun, 31 Oct :41: (-0800) Subject: [PATCH] Don't initialize /dev/pg0 to be always busy Without this patch my HP CD-Writer doesn't work. With this applied everything is fine. Signed-off-by: Tero Roponen Signed-off-by: Linus Torvalds --- diff --git a/drivers/block/paride/pg.c b/drivers/block/paride/pg.c index d73e3ec..8f28ff a/drivers/block/paride/pg.c +++ b/drivers/block/paride/pg.c -262,7 +262,7 static void pg_init_units(void) int *parm = *drives[unit]; struct pg *dev = &devices[unit]; dev->pi = &dev->pia; -set_bit(0, &dev->access); +clear_bit(0, &dev->access); dev->busy = 0; dev->present = 0; dev->bufptr = NULL;

Example problem: the BKL (1/4) In the late 1990’s support for multiple processors was added to Linux. For the needed locking the Big Kernel Lock was introduced. Very simple idea: one CPU gets the lock and others wait. Doesn’t scale. Better alternatives exists. Must be removed. "The BKL can be subtle and evil, but as I brought it into the world I guess I must banish it ;)" - Alan Cox, 18 May 2008

Example problem: the BKL (2/4) The process of getting rid of BKL has been going on for years, and is still unfinished. “12 years after Linux has been converted to an SMP OS we still have legacy BKL using sites. There are 400+ lock_kernel() critical sections and 800+ ioctls. They are spread out across rather difficult areas of often legacy code that few people understand and few people dare to touch.” - Ingo Molnar, 14 May 2008

Example problem: the BKL (3/4) “The biggest technical complication is that the BKL is unlike any other lock: it "self-releases" when schedule() is called. This makes the BKL spinlock very "sticky", "invisible" and viral: it's very easy to add it to a piece of code (even unknowingly) and you never really know whether it's held or not.” - Ingo Molnar, 14 May 2008 The problem: BKL is unlike any other lock. The solution: lots of hard work.

Example problem: the BKL (4/4) Lesson learned: “The fact is, any time anybody makes up a new locking mechanism, THEY ALWAYS GET IT WRONG. Don't do it." Take heed. You got it wrong. Admit it. Locking is _hard_. SMP memory ordering is HARD. So leave locking to the pro's. They _also_ got it wrong, but they got it wrong several years ago, and fixed up their sh*t. This is why you use generic locking. ALWAYS.” - Linus Torvalds, 8 Dec 2009

BKL is hard to get rid of Big Kernel Lock was added to kernel - kernel , January 1996 "I suspect we are getting close to the point where we could actually start to remove it.“ - Linus Torvalds, 9 Jun 2001 "At the moment we have the BKL here but this removes the need for it and is a step in the right direction“ - Alan Cox, 29 Sep 2006 "We've had quite a bit of BKL work this merge-window. Maybe we'll even get rid of it one of these days. There are "only" about 600 instances of "lock_kernel()" in the tree right now ;)" - Linus Torvalds, 13 Dec 2009

Reading can be hard, too The most valuable source of Linux information besides the source code is the Linux Kernel Mailing List - Between January 1, 2008 and December 31, 2008 about 150,000 messages were posted - These mails account for 1.2 gigabytes of data - That’s about 410 messages every day (and somebody has to read them...)

Future work (for me, not the kernel people) Finalize and submit the first article Find and study more problems... and have some fun doing this, because...

Questions? … all work and no play may have some bad consequences: On Tue, 24 Jul 2007, Alan Cox wrote: > > Just one version of Linux ago > The PLL code broke - oh no! > But set the right mode > And fix up the code > Makes the PLL timing sync go Alan, I'm getting a bit worried about you. Linus