to the weblog
back to the front page

A Speech On The Linux Kernel Preemption Patch

On December, 16th 2003 held as part of the Linux Internals Proseminar
at the University of Karlsruhe (TH) in the Wintersemester 2003/2004.

Topic of this speech is the kernel preemption patch...

  • that was originally written by Nigel Gamble (employee of MontaVista),
  • that is presumedly since October, 2001 maintained by Robert Love (employee of MontaVista since January, 2002), and
  • that was merged into the main linux kernel tree as of v2.5.4-pre6 on Feb. 10, 2002.


Apart from the original Keynote version I did exports to some other file formats as Keynote is not really available for many platforms (i.e. only for Mac OS X). Unfortunately all these exports suffer from various losses, therefore I comment on the drawbacks of each exported file.

The graphics contained in the slides

Hardware handling of interrupts and exceptions:

Hardware handling of interrupts and exceptions
Click for a large version.

Software handling of interrupts and exceptions:

Software handling of interrupts and exceptions
Click for a large version.

Call of preempt_schedule in ret_from_exception:

Call of preempt_schedule in ret_from_exception
Click for a large version.


OS design background:

  • Andrew S. Tanenbaum, Moderne Betriebssyteme, 2. Auflage
  • William Stallings, Operating Systems, Fourth Edition

Linux specific background:

  • Tigran Aivazian, Linux Kernel 2.4 Internals, Aug. 7th, 2002
    (The LKI is part of the Linux Documentation Project.)
  • Daniel O. Bovet & Marco Cesati, Understanding the Linux
    Kernel, First Edition (Kernel 2.2) and 2nd Edition (Kernel 2.4)

Source codes of...

  • the Linux kernel versions 2.4.22 and 2.4.23,
  • several versions of MontaVista's / Robert Love's Kernel Preemption Patch, and
  • the low latency / lock-breaking patches by Ingo Molnar and Andrew Mortan, respectively.

online resources in order of application:

Final remark

Although I used Apple's Keynote to create the slides of this presentation please do not understand this as a recommendation for the program. It was a truly pain! I always had to adjust the text size and the line pitch to make the slides pleasant (i.e. to make it visually clear (on the first look) by distance and size which subitems belong to which main item).

Another disadvantage was that Keynote runs under Mac OS X as I normally only use Linux. While creating the slides I wanted to have my usual working environment (an old version (version 1.2.8) of the Galeon web browser with a good working session support, GNU Emacs in a non stupidly behaving terminal program for reading the Linux kernel source, xxdiff to compare the changes of the different Kernel preemption and lock-breaking patches) and so I used Keynote running in an instance of Mac On Linux. The problem with this is that Keynote uses direct hardware access to the NVRAM of the graphic card for the presentation mode (if I remember correctly) and so I always had to boot Mac OS X instead of Linux (i.e. not just Mac On Linux) to view the slides not only in the edit mode but in the real presentation mode. Very time consuming and peeving.

In fact the disadvantages caused my work on Acclaim as I wanted a presentation program whose slides where easy to create (at least for myself).

Max-Gerd Retzlaff <>, <>, or <>
GnuPG- / OpenPGP-Information:
   Type bits/keyID    Date       User ID
   pub  1024/81239F12 2002/03/12 Max-Gerd Retzlaff <>
             Key fingerprint =  49 CD 21 F2 41 AC 72 C5  D0 D1 27 DC C2 B2 48 AE  81 23 9F 12 
   uid                           Max-Gerd Retzlaff <>
   sub  4096g/63E36E39 2002-03-12
   local copy of the key

First version on June, 12th 2004. Last modified: Mon Oct 4 19:08:53 CEST 2004