Open Source im professionellen Einsatz

Lockdep findet Deadlocks

Der Lockdep-Validator hängt sich in alle fürs Locking relevanten Systemcalls (zum Beispiel »exit()«) beziehungsweise Kernelfunktionen (etwa »mutex_lock()«) ein. Er hat eine Reihe von Regeln eingebaut, mit denen er das Reservieren und Freigeben von Locks (Spinlocks, Semaphore, Mutexe) während des normalen Betriebs überwacht. Beim Aufruf von »exit()« zum Beispiel sieht der Validator in den Tabellen nach, ob der zugehörige Job noch ein Lock hält. Wenn ja, kommt es zu einer Meldung im Syslog und zum Abschalten des Überwachungscode.

Weitere Regeln identifizieren beispielsweise mehrfaches Reservieren, mehrfaches Freigeben, Reservieren und Freigeben in unerlaubtem Kontext, verschachteltes Halten von Locks oder sogar das Erkennen von Deadlock-Situationen. Der Validator funktioniert sowohl auf Ein- als auch auf Mehrprozessormaschinen. Schade, dass das Subsystem so viel Rechenzeit verschlingt [6].

Der Lock-Validator kann also weitaus mehr als nur rekursiv gehaltene Mutexe melden [7]. Dank seiner ausgeklügelten Mechanismen hat er dabei geholfen, viele Probleme im Kernel zu identifizieren und zu beseitigen. Ende 2008 beantragte sein Entwickler Ingo Molnar beim amerikanischen Patentamt USPTO die Methode zu patentieren [8]. (mg)

Infos

[1] Jürgen Quade, Eva-Katharina Kunst, "Schutz kritischer Abschnitte": Kern-Technik 5, Linux-Magazin 12/03, S. 82

[2] Jürgen Quade, Eva-Katharina Kunst, "Realtime-Mutexe": Kern-Technik 44, Linux-Magazin 03/09, S. 88

[3] Ingo Molnar et al., "Generic Mutex Subsystem", Kerneldokumentation zu Sperren: »Documentation/mutex-design.txt«

[4] Jonathan Corbet, "TASK_KILLABLE": [http://lwn.net/Articles/288056/]

[5] Nerdy Room, "Compiling Linux 2.6.33 on Ubuntu":[http://www.nrtm.de/index.php/2010/02/25/compiling-linux-2-6-33-on-ubuntu/]

[6] Ingo Molnar, "Runtime locking correctness validator": [http://www.mjmwired.net/kernel/Documentation/lockdep-design.txt]

[7] Jonathan Corbet, "The Kernel Lock Validator": [http://lwn.net/Articles/185666/]

[8] Ingo Molnar, "Method and system for a kernel lock validator", Patent: [http://www.faqs.org/patents/app/20080294892]

Die Autoren

Eva-Katharina Kunst, Journalistin, und Jürgen Quade, Professor an der Hochschule Niederrhein, sind seit den Anfängen von Linux Fans von Open Source. Zurzeit arbeiten Sie an der dritten Auflage ihres Buches "Linux Treiber entwickeln".

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook