zurück zum Artikel

Kernel-Log – Was 2.6.30 bringt (2): Neue und überarbeitete Dateisysteme

| Thorsten Leemhuis

Zahlreiche Änderungen beeinflussen Datensicherheit und die Performance von Ext3 und Ext4. Neu dabei sind Exofs und Nilfs2 sowie der FS-Cache für AFS und NFS. Korrekturen gab es am kaum mehr betreuten Reiserfs.

Mitte der Woche hat Linus Torvalds die dritte Vorabversion [1] von Linux 2.6.30 freigegeben. Sie bringt abgesehen von zwei Code-Umstrukturierungen vorwiegend kleinere Verbesserungen und Korrekturen, wie es in der zweiten Phase des Entwicklungszyklus [2] üblich ist.

Mittlerweile sind auch die langwierigen Diskussionen [3] rund um Dateisysteme Ext3 und Ext4 sowie deren Interaktion mit anderen Kernel-Subsystemen weitgehend zur Ruhe gekommen. Über deren Anfänge hatte heise open berichtet [4] – die gelegentlich etwas ruppige Diskussion auf der LKML [5] ging danach jedoch noch mehr als eine Woche emsig weiter. So kamen schließlich 650 Mails [6] zusammen – andere, durch diese Diskussion aufgelöste Threads nicht mitgezählt.

Die Debatten waren jedoch keineswegs fruchtlos, sondern führten zur Entwicklung einiger Änderungen, die Torvalds teilweise sofort in den derzeit zu Linux 2.6.30 führenden Hauptentwicklungszweig [7] integrierte. Über diese sowie zahlreiche andere Änderungen rund um den Code der verschiedenen von Linux unterstützten Dateisysteme gibt der folgende zweite Teil der Kernel-Log [8]-Mini-Serie "Was 2.6.30 bringt" gibt einen Überblick.

Relativ früh kochte in der erwähnten Diskussion ein altes, schon häufig diskutiertes und Dateisystem-übergreifendes Thema erneut hoch: Wann beziehungsweise wie häufig soll der Kernel die Zugriffszeit (Atime/Access Time) einer Datei aktualisieren? Die Information ist nur für eine Handvoll Anwendungen von Bedeutung, jede Aktualisierung zieht jedoch einen Schreibvorgang nach sich – die kosten nicht nur Zeit, sondern sind gerade bei SSDs oder mit Akku laufenden Notebooks eher unerwünscht.

Matthew Garrett erstellte daraufhin einige Patches [9], durch die der Kernel die Zugriffszeit nur mehr einmal pro Tag aktualisiert [10] (Relative atime/relatime). Linus Torvalds nahm diese Änderungen nur wenige Stunden später als eine der ersten nach der Freigabe von 2.6.29 in den Hauptentwicklungszweig [11] auf. Ein weiterer Patch von Garrett machte relatime zum Standard [12]; das alte Verhalten lässt sich mittels strictatime [13] aktivieren.

Doch auch diesen von vielen Kernel-Hackern [14] schon lange geforderten Änderungen stellen nicht alle Entwickler zufrieden – Valerie Aurora (vormals Henson) nennt einige Kritikpunkte in ihrem Blog [15]. Es ist daher nicht auszuschließen, dass das Thema früher oder später erneut aufs Tapet kommt.

Ausgelöst hatte die Diskussion auf der LKML [16] ein Nutzer, der von langen Wartezeiten bei Anwendungen berichtete, sobald diese mittels fsync() ein Leeren der Ext3-Schreibpuffer auslösen, während der Kernel parallel größere Leseanforderungen abarbeitete. Dieses Problem ist seit Monaten bekannt, die erhältlichen Workarounds waren allerdings umstritten.

Ext[234]-Dateisystementwickler Ted Ts'o kritisiert in dem Rahmen die Anwendungsentwickler, die durch umsichtigeres Vorgehen dem Dateisystem einiges an Arbeit ersparen könnten; andere Kernel-Hacker sind da jedoch ganz anderer Meinung. Ted Ts'o hatte jedoch bereits einige weniger kontroverse und später für 2.6.30 aufgenommene Patches [17] für Ext3 und Ext4 entwickelt, die die Wartezeiten laut seinen Messungen [18] verkürzen.

Im Rahmen von Tests fand Torvalds später jedoch heraus, dass auch der CFQ-Scheduler des Block-Layers eine Mitschuld an den Wartezeiten trägt. Jens Axboe analysierte das Problem und erarbeitete kurzfristig weitere Änderungen, die die Wartezeiten weiter reduzieren. Das dürfte im Einzelfällen die Geschwindigkeit von Desktop-Systemen nicht nur messbar, sondern sogar spürbar steigern.

Mehr Infos

Debatten und Details

Der nebenstehende Text erwähnt nur die allerwichtigsten Punkte sowie Resultate der eingangs erwähnten Diskussionen rund um Ext3 und Ext4 sowie deren Interaktion mit anderen Kernel-Subsystemen wie dem Block Layer. Linux Weekly News (LWN.net) hat sich in den Artikeln That massive filesystem thread [19] und Solving the ext3 latency problem [20] detaillierter mit den Diskussionen und den daraus hervorgegangenen Änderungen beschäftigt.

Auch die Artikel "Linux Storage and Filesystem workshop" Day 1 [21] und Day 2 [22] gehen an einigen Stellen auf die in angesprochenen Aspekte ein. Mit dem Problem potenziellen Datenverlusts bei Ext4 beschäftigt sich der Artikel ext4 and data loss [23].

Das eigentliche Problem für die Wartezeiten sei aber nicht unerheblich durch die Eigenschaft von Ext3 bedingt, Dateisysteme standardmäßig als "data=ordered" einzubinden; Ted Ts'o bereute sogar [24] die vor Jahren getroffene Entscheidung, diesen Modus als Standard vorgegeben zu haben.

Nachdem es anfangs schien, als blieben diese Diskussionen fruchtlos, nahm Torvalds einige Tage später einige von Ted Ts'o entwickelte Patches auf. Darunter einer [25], durch den der Kernel Ext3-Dateisysteme mit "data=writeback" einbindet, sofern es der Anwender bei der Kernel-Konfiguration oder dem Mounten nicht explizit anders vorgibt. Das soll die Performance steigern, erhöht jedoch die Gefahr eines Datenverlustes beim Absturz oder außerplanmäßigen Ausschalten des PC; zudem besteht die Gefahr, dass sich in neuen, vor einem Absturz nicht komplett geschriebenen Dateien Daten von zuvor gelöschten Dateien finden, die möglicherweise einem anderen Nutzer gehörten.

Einige dieser Probleme soll der von Btrfs-Hauptentwickler Chris Mason entwickelte Modus [26] "data=guarded" lösen. Zwei im Rahmen dieser Entwicklung programmierte Verbesserungen fanden bereits jetzt den Weg in den Hauptentwicklungszweig; der Rest wurde zurückgestellt, da sich der Entwicklungszyklus mittlerweile in der Stabilisierungsphase befand.

In dem Trubel der Diskussion kam auch die Anfang März bekannt gewordene Gefahr eines Datenverlusts [27] durch Delayed Allocation von Ext4 erneut zur Sprache. Die sollen aber einige Patches für den Ext4-Code deutlich mindern, die wie geplant [28] den Weg in den Hauptentwicklungszweig fanden – die Änderungen beeinflussen die Performance in machen Situationen allerdings negativ.

Die Diskussionen rund um das Datenverlustrisiko führten zu einer Debatte, welche Garantien Dateisysteme überhaupt liefern müssen; das führte wiederum zu der Frage, ob und wie Kernel und Dateisystem überhaupt sicherstellen sollen, dass die Daten nicht nur im Write-Cache eines Datenträgers landen, sondern auch tatsächlich in der richtigen Reihenfolge geschrieben werden. Über diese und andere Fragen rund um Performance-Tuning entstand dann eine Diskussion, welche Einstellungsvorgaben die Kernel-Entwickler machen sollen und wo sie das Feintuning besser den Linux-Distributoren überlassen.

Nach der Aufnahme von Btrfs und SquashFS [29] bei Linux 2.6.29 [30] haben die Kernel-Entwickler für 2.6.30 mit Nilfs2 und EXOFS abermals zwei neue Dateisysteme integriert.

Bei Nilfs2 [31] (New Implementation of a Log-structured Filesystem Version 2) handelt es sich um ein Log-structured File System (LFS) mit Continuous Snapshotting, das speziell für die Belange von Solid State Discs (SSD) optimiert ist. Eine detaillierte Beschreibung der Arbeitsweise liefern die Nilfs2-Homepage [32] und die Kernel-Dokumentation zu Nilfs2 [33]; weitere Details finden sich bei einer im Februar im Rahmen des "Linux Storage & Filesystem Workshop 2008" (LSF'08) gehaltenen Präsentation [34], die auch einen Vergleich Nilfs2 mit btrfs, ext[2-4], reiserfs und XFS beim Betrieb mit einer SSD enthält. Zudem geht der schon etwas ältere Vortrag von Dongjun Shin auf einige Besonderheiten von Dateisystemen für SSDs näher ein.

Exofs steht für Extended Object File System und hieß zuvor Osdfs (Object-Based Storage Devices File System). Wie der alte Name andeutet, ist es für die eher exotischen OSDs (Object-Based Storage Devices [35]) gedacht, die das SCSI-Subsystem mit dem Kernel 2.6.30 erstmals unterstützen wird. Wer sich für diese Speichertechnik und das Dateisystem näher interessiert, findet Details in dem Artikel von Sun zu OSDs [36], dem OSD Protocol [37], der Kernel-Dokumentation zu EXOFS [38], der Homepage der EXOFS-Entwickler [39] und einem LWN.net-Artikel zu EXOFS/OSDFS [40].

Mehr Infos

Kernel-Log – Was 2.6.30 bringt

Weitere Teile aus der Kernel-Log [41]-Mini-Serie "Was 2.6.29 bringt":

1. Netzwerk – Neue Treiber für LAN und WLAN [42]

Der Artikel "Stetes Wachstum – Die Neuerungen von Linux 2.6.29 [43]" bietet eine Übersicht über die Neuerungen der bei der Artikel-Veröffentlichung aktuellen Kernel-Version der Hauptentwicklungslinie.

Das bei der Freigabe dieses Artikels neueste reguläre Kernel-Log [44] beschäftigt sich verschiedenen Entwicklungen rund um die Linux-Grafiktreiber für GPUs von AMD und Intel; wie immer [45] finden auch zahlreiche weitere Geschehnisse rund um den Linux-Kernel und andere Hardware-nahe Linux-Software kurz Erwähnung. Weitere Kernel-Logs [46] finden sich über die Übersichtsseite [47] von heise open [48].

Nach mehren Jahren [49] Entwicklung haben die Kernel-Entwickler auch die maßgeblich von Red-Hat-Entwickler David Howells entwickelten FS-Cache-Patches aufgenommen (Kernel-Dokumentation [50]). Durch die Erweiterungen lässt sich ein Dateisystem-Cache einrichten, um den Datenverkehr beim Einsatz von Netzwerk-Dateisystemen wie AFS oder NFS zu reduzieren; das ist etwa bei Thin Clients mit kleinen Festplatten oder Flash-Medien interessant, die ihr Root-Dateisystem und alle anderen Daten übers Netz beziehen.

Auch die Btrfs-Entwickler waren fleißig und optimierten den Dateisystemcode, sodass dieses [51] mit 4k-Stacks besser zurecht kommt; weitere Verbesserungen in dieser Richtung stehen noch auf der ToDo-Liste. Darüber hinaus [52] gab es einige Optimierungen, die die Schreib-Performance allgemein sowie beim SSD-Betrieb steigern sollen.

Der ReiserFS-Code des Kernels gilt zwar noch [53] als "supported", hat aber schon seit längerem keinen offiziellen Maintainer mehr, der den Code betreut – daher gab es am ihm in den vergangenen Monaten nur kleinere Änderungen, die sicherstellten, dass das früher populäre Dateisystem überhaupt weiter funktioniert.

Über Novell-Entwickler Jeff Mahoney fanden nun jedoch zahlreiche [54] im Rahmen von SLED/SLES entwickelte und teilweise bereits über zwei Jahre alte Patches den Weg in den Hauptentwicklungszweig. Sie sollen Ungereimtheiten oder Fehler im auch Reiser3 genannten ReiserFS beseitigen. Beim Git-Pull-Request [55] meinte Mahoney, dass sich ReiserFS nach Aufnahme dieser Patches im "tiefen Instandhaltungsmodus" (deep maintenance-only mode) befände. Im Rahmen der Diskussion um den Git-Pull-Requests [56] ließ Frederic Weisbecker jedoch durchblicken, dass er an Änderungen arbeitet [57], die die Verwendung des Big Kernel Locks (BKL) in Reiserfs reduzieren sollen.

Die DFS-Unterstützung von CIFS erweiterten die Kernel-Entwickler um Unterstützung zum Erreichen entfernter Server [58].

Bei dieser und den anderen bisher genannten Neuerungen handelt es sich nur um die bedeutsamsten Änderungen, die die Kernel-Hacker [59] am jüngst Code der verschiedene Dateisysteme vorgenommen haben. Zahlreiche weiterer wichtige Änderungen finden sich in der folgenden Liste mit den Überschriften des jeweiligen Commits [60] im Hauptentwicklungszweigs [61]; über die Links gelangt man direkt zur Änderungen im Webfrontend [62] des Hauptentwicklungszweigs, wo der Commit-Kommentar und der Patch [63] selbst weitere Informationen zu diesen vielleicht etwas weniger wichtigen, aber keineswegs unbedeutenden Änderungen vermitteln.

Filesystems:

Btrfs

Mehr Infos

Relevant Git-Pull-Requests [73]:

FS-Cache

exofs

Ext[234]

Nilfs2

Various

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in vorangegangen Ausgaben [226] des Kernel-Logs [227] auf heise open [228]. (thl [229]/c't) (thl [230])


URL dieses Artikels:
https://www.heise.de/-221811

Links in diesem Artikel:
[1] http://thread.gmane.org/gmane.linux.kernel/825801
[2] https://www.heise.de/glossar/entry/Entwicklungszyklus-des-Linux-Kernels-397915.html
[3] http://thread.gmane.org/gmane.linux.kernel/811167/
[4] https://www.heise.de/news/Kernel-Entwickler-streiten-ueber-Ext3-und-Ext4-209350.html
[5] http://www.heise.de/glossar/entry/Linux-Kernel-Mailing-List-397973.html
[6] http://thread.gmane.org/gmane.linux.kernel/811167/
[7] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[8] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[9] http://www.heise.de/glossar/entry/Patch-395546.html
[10] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=11ff6f05f1e836a6a02369a4c4b64757e484adc1
[11] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[12] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d0adde574b8487ef30f69e2d08bba769e4be513f
[13] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0a1c01c9477602ee8b44548a9405b2c1d587b5a2
[14] http://www.heise.de/glossar/entry/Kernel-Hacker-397919.html
[15] http://valhenson.livejournal.com/36519.html
[16] http://www.heise.de/glossar/entry/Linux-Kernel-Mailing-List-397973.html
[17] http://thread.gmane.org/gmane.comp.file-systems.ext4/12492
[18] http://thread.gmane.org/gmane.comp.file-systems.ext4/12492
[19] http://lwn.net/Articles/326471/
[20] http://lwn.net/Articles/328363/
[21] http://lwn.net/Articles/327601/
[22] http://lwn.net/Articles/327740/
[23] http://lwn.net/Articles/322823/
[24] http://thread.gmane.org/gmane.linux.kernel/814249
[25] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=bbae8bcc49bc4d002221dab52c79a50a82e7cd1f
[26] http://thread.gmane.org/gmane.comp.file-systems.ext4/12696
[27] https://www.heise.de/news/Moeglicher-Datenverlust-bei-Ext4-205664.html
[28] http://www.heise.de/open/artikel/134730/1
[29] https://www.heise.de/hintergrund/Kernel-Log-Was-2-6-29-bringt-4-Dateisysteme-Storage-Btrfs-SquashFS-Ext4-ohne-Journal-und-neue-Storage-Treiber-221743.html
[30] https://www.heise.de/hintergrund/Stetes-Wachstum-Die-Neuerungen-von-Linux-2-6-29-221765.html
[31] http://www.nilfs.org
[32] http://www.nilfs.org/
[33] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/nilfs2.txt;hb=HEAD
[34] http://www.usenix.org/event/lsf08/tech/shin_SSD.pdf
[35] http://en.wikipedia.org/wiki/Object_storage_device
[36] http://developers.sun.com/solaris/articles/osd.html
[37] http://www.t10.org/ftp/t10/drafts/osd2/osd2r04.pdf
[38] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/exofs.txt;hb=HEAD
[39] http://www.open-osd.org/
[40] http://lwn.net/Articles/305740/
[41] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[42] https://www.heise.de/hintergrund/Kernel-Log-Was-2-6-30-bringt-1-Frische-WLAN-Treiber-und-andere-Netzwerk-Neuerungen-221799.html
[43] https://www.heise.de/hintergrund/Stetes-Wachstum-Die-Neuerungen-von-Linux-2-6-29-221765.html
[44] https://www.heise.de/hintergrund/Kernel-Log-3D-Unterstuetzung-fuer-neue-Radeon-neue-Intel-Treiber-221805.html
[45] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[46] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[47] http://www.heise.de/open/artikel/kernel-log/
[48] http://www.heise.de/open/
[49] http://lwn.net/Articles/100321/
[50] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/caching/fscache.txt;hb=HEAD
[51] http://thread.gmane.org/gmane.linux.kernel/815305
[52] http://thread.gmane.org/gmane.linux.kernel/815305/focus=817368
[53] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=MAINTAINERS;h=cb9571042f216e24bcea891358623dd99e93e9aa;hb=HEAD#l4710
[54] http://thread.gmane.org/gmane.comp.file-systems.reiserfs.general/22106
[55] http://www.heise.de/glossar/entry/Git-Pull-Request-397971.html
[56] http://www.heise.de/glossar/entry/Git-Pull-Request-397971.html
[57] http://thread.gmane.org/gmane.comp.file-systems.reiserfs.general/22106/focus=22130
[58] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1bfe73c258addc388b90fe8c2c6bbc0f0c9c10dd
[59] http://www.heise.de/glossar/entry/Kernel-Hacker-397919.html
[60] http://www.heise.de/glossar/entry/Commit-397925.html
[61] http://www.heise.de/glossar/entry/Hauptentwicklungslinie-397933.html
[62] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=summary
[63] http://www.heise.de/glossar/entry/Patch-395546.html
[64] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d313d7a31a752c88f7288692bd98e66d0789779b
[65] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5a3f23d515a2ebf0c750db80579ca57b28cbce6d
[66] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=dccae99995089641fbac452ebc7f0cab18751ddb
[67] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=56bec294dea971335d4466b30f2d959f28f6e36d
[68] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3a5e14048a0a81276d284cbda441507a17e26147
[69] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8e73f275011b3264a87339fd9f1690e944e381c9
[70] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=fa9c0d795f7b57c76560b7fac703f5d341210e28
[71] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=cf47b8f3d96b0b8b10b557444a28b3ca4024ff82
[72] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ffbd517d5a8c8e93ddd11046434fb029f3df73aa
[73] http://www.heise.de/glossar/entry/Git-Pull-Request-397971.html
[74] http://thread.gmane.org/gmane.linux.kernel/815305
[75] http://thread.gmane.org/gmane.linux.kernel/815305/focus=817368
[76] http://news.gmane.org/find-root.php?message_id=1240320545.4869.22.camel@think.oraclecorp.com
[77] http://thread.gmane.org/gmane.comp.file-systems.ext4/12453
[78] http://thread.gmane.org/gmane.comp.file-systems.ext4/12492
[79] http://thread.gmane.org/gmane.comp.file-systems.ext4/12492/focus=12632
[80] http://news.gmane.org/find-root.php?message_id=20090403155436.28714.23368.stgit@warthog.procyon.org.uk
[81] http://news.gmane.org/find-root.php?message_id=29650.1238774351@redhat.com
[82] http://thread.gmane.org/gmane.linux.cluster.redhat.cluster.devel/3505
[83] http://thread.gmane.org/gmane.linux.kernel/815231/focus=25600
[84] http://thread.gmane.org/gmane.comp.file-systems.ocfs2.devel/3561
[85] http://thread.gmane.org/gmane.linux.kernel/812667
[86] http://article.gmane.org/gmane.linux.kernel/815045
[87] http://thread.gmane.org/gmane.linux.kernel/813625
[88] http://thread.gmane.org/gmane.linux.kernel/816876
[89] http://thread.gmane.org/gmane.comp.file-systems.xfs.general/28747
[90] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9ae326a69004dea8af2dae4fde58de27db700a8d
[91] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=800a964787faef3509d194fa33268628c3d1daa9
[92] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=385e1ca5f21c4680ad6a46a3aa2ea8af99e99c92
[93] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=07fe7cb7c7c179f473fd9c823348fd3eb5dad369
[94] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8f0aa2f25b31ba27db84259141e52ee6ec0d2820
[95] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=952efe7b7840e1c726ae88222245e4efe6bd88f3
[96] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4c515dd47ab41be3f89e757d441661795470b376
[97] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0e04d4cefcf4d8fbbdb2c50e93ad541582933fd2
[98] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=06b3db1b9bccdc8c2c743122a89745279e5ecc46
[99] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=726dd7ff10c217dd74329c94643dc8ebea27334b
[100] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0dfc41d1efcc4180abfd32f68f0ade540e636ff6
[101] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2d6fff637037395cc946ef910a880b5fa67b5370
[102] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7394daa8c61dfda4baa687f133748fa0b599b017
[103] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2868cbea72dc89ae0eb17693596b1dedaafff1c5
[104] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b510882281d56873e1194021643b7c325336f84f
[105] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ccc4fc3d11e91477036d1f82bfa2d442f6ce77f0
[106] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9b3f26c9110dcea62716aca9b8c68ceb482227ef
[107] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=36c9559022850f919269564a74bf17fdabf4bb30
[108] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=955d00917f0c094e0f2fb88df967e980ab66b8ca
[109] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=266cf658efcf6ac33541a46740f74f50c79d2b6b
[110] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=03fb3d2af96c2783c3a5bc03f3d984cf422f0e69
[111] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a6891645cf2ddd4778096848a864580e7258faba
[112] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=109d9272c423f46604d45fedfe87e21ee0b25180
[113] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0
[114] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6b9b3514aa188183e74049853be43380ad49314f
[115] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c6a6f19e22da0a3d74214ee010224c9a30a794c1
[116] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b797cac7487dee6bfddeb161631c1bbc54fa3cdb
[117] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1fcdf534885b65e6d39780a5a89e9dfc5431cf68
[118] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6a51091d0775cdc4a923f2172c61925ad416aa32
[119] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=10329a5d48f5abc14a37d30b706e330f8598297a
[120] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=147272813e043fb44bd112527951da70c1e663de
[121] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=08734048b380103f0412f58b84c2f76a2c8b599f
[122] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5d1acff159730770cbab68b19443518c92ab1000
[123] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=545db45f0fc0d4203b045047798ce156972a3056
[124] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d599064a1bca7bcbaabe54b94fa73ea86952cae3
[125] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f42b293d6d5259043a8944b556eeab427c695d57
[126] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3b9ce977b2f31b6c396b6fb620df9881a30fac9d
[127] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9a9fc1c03315f1606596e55b4096d39e2079a041
[128] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8ec442ae4c6577ed181682e534d4eef524e30b3c
[129] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7f8e05f60c87646e12c761fef61dd71a7e67112e
[130] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ef79c097bbe9724e13937271b3457df560e00370
[131] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=beaec07ba6af35d387643b76a2920a7a6e22207b
[132] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e6af00f1d1697ca41ab6a55307066ef3466833a9
[133] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=214c8adb87b880690b103e86baffc46f8288fa62
[134] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8cf74b3936f5c65975b68333727f0540ec8350f4
[135] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e806271916ed6068a0e3e4e9298dff0688b88e0d
[136] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b14f8ab2844987f013253dd04b708bde7fc1b52d
[137] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ba9e5e98ca2f808fe92b103a8e6ce5271b10cc89
[138] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=982980d753223fda3864038236b7b94e246895cb
[139] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0d8fe329a80714e0f729ae48cba8d64cbe5701cb
[140] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e7c8f5079ed9ec9e6eb1abe3defc5fb4ebfdf1cb
[141] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f7ab34ea723ed304b19698efca85d6f40cecd99b
[142] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9e80d407736161d9b8b0c5a0d44f786e44c322ea
[143] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=bbae8bcc49bc4d002221dab52c79a50a82e7cd1f
[144] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=430db323fae7665da721768949ade6304811c648
[145] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ccd2506bd43113659aa904d5bea5d1300605e2a6
[146] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=722bde6875bfb49a0c84e5601eb82dd7ac02d27c
[147] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3197ebdb130473a92760100cbfe0d7e671838f48
[148] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7d8f9f7d150dded7b68e61ca6403a1f166fb4edf
[149] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8750c6d5fcbd3342b3d908d157f81d345c5325a7
[150] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d6014301b5599fba395c42a1e96a7fe86f7d0b2d
[151] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=06705bff9114531a997a7d0c2520bea0f2927410
[152] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b713a5ec55bf73c833f9883cdd761b20ee61a1ab
[153] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=afc32f7ee9febc020c73da61402351d4c90437f3
[154] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e3375ac767b847127df57d186a26abf83d055982
[155] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=962281a7ab3aeb97eed004b8f0bdb0979cf35347
[156] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=65b4643d3babeb203fa9571d12fd5e1bf74d27b0
[157] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=85ef9cea02882baedd1e65336cf3dd292841dde3
[158] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=84ef1ecfdea2f9f1e740a4bee0fa9cd629bdda70
[159] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=47420c799830d4676e544dbec56b2a7f787528f5
[160] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a3d93f709e893187d301aa5458b2248db9f22bd1
[161] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=17c76b0104e4a6513983777e1a17e0297a12b0c4
[162] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a60be987d45dd510aeb54389526f9957cfab106c
[163] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0bd49f9446130a6a3914eb07b54db489e3222b34
[164] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=29619809727a4e524e26dbd7bfdc93ff7f50aa74
[165] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8acfbf0939e98cc77dab94c24899c9930ddd1e13
[166] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a2e7d2df82cafb76f76809ddf6e2caa8afe4f75e
[167] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=458c5b0822a669d170fdb7bb16c9145f652ebe06
[168] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=36a580eb489f54d81a0534974962e732a314b999
[169] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2ba466d74ed74f073257f86e61519cb8f8f46184
[170] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a17564f58b11476c011d623fa1f268602a81c27c
[171] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=eed10e39b142eb4d284c8e4c751c0eaaa0bcd707
[172] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=2c2e52fc4fca251e68f90821c9ff5cb18be4df58
[173] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f183ff4f05317b7929337455b233496f68217c1a
[174] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=76068c4ff1cc03d9d24d17fd9e6a1475bc2f6730
[175] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b028fcfc4cd198a6aa1ffcfb872073ccc1db3459
[176] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7fa10d20012296300dfe645cb3e628a4e9a0d5ef
[177] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f30bf3e40f80ef50c17f55271deae3abc03e793e
[178] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3358b4aaa84fd4c1cdd64391875e92cbb8afeb29
[179] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=43bfb45ed4feace26157778889be55e4046b7a4b
[180] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=05fe58fdc10df9ebea04c0eaed57adc47af5c184
[181] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=047180f2d7bf95ff5699ca04da639a7556e23435
[182] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=bdb265eae08db578e7cf5739be16f389d495fc75
[183] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e339ad31f59925b48a92ee3947692fdf9758b8c7
[184] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7942b919f7321f95a777d396ff7894a7a83dc9b0
[185] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c96fa464a567a2a8796009af0e79bc68af73f485
[186] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5eb563f5f299a2ed488d9eb52acede45ccb14c7b
[187] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8a9d2191e9f43bbcd256a9a6871bd73434c83f2f
[188] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d25006523d0b9e49fd097b2e974e7c8c05bd7f54
[189] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5442680fd23abc01f29af585cc1a2f793bd74565
[190] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0f3e1c7f23f8a6f8224fa1d275381f6d9279ad4b
[191] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8082d36aed26c4fb6ed43e4008303682eabf839e
[192] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1088dcf4c3a0a27fdad5214781d5084b11405238
[193] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=1f5abe7e7dbcd83e73212c6cb135a6106cea6a0b
[194] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=64b5a32e0b3680a9655b3f2e668a646068e71d33
[195] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453
[196] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6c98cd4ecb0ae35f0368c5c2190712689c2064aa
[197] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=cece552074c591970353ad48308d65f110aeaf28
[198] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=783f61843e9d14724f5f79ae955a28c27e300467
[199] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e62687468588f47c32256e3c8c36157c40111b6e
[200] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=612392307cb09e49051225092cbbd7049bd8db93
[201] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=0c4fb877641c5c72d4a3ce8921a256bfe44055c0
[202] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=dc498d09be28172846cacded35ca2378222a8c7b
[203] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7a9461939a46345860622ea36ff267ee4446f00f
[204] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a6ce4932fbdbcd8f8e8c6df76812014351c32892
[205] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=66672fefaa91802fec51c3fe0cc55bc9baea5a2d
[206] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=760df93ecdd59fc1c213a491b5adee79f53606da
[207] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b5cbc369db39d9080f4932db8607aea1e1654d4d
[208] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c2d7543851849a6923680cdd7e1047ed1a84a1c5
[209] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f057f6cdf64175db1151b1f5d110e29904f119a1
[210] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=18df1884a872a2cc405a578cfd0d3adc8d227277
[211] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8daf220a6a83c47b9648c28bb819c14c60bad7f9
[212] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3ef1728898f0285c13aa6901f412b52835e23578
[213] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9b7895efac906d66d19856194e1ba61f37e231a4
[214] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e7c17e43090afe558c40bfb66637744c27bd2aeb
[215] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4a12ca3a00a244e1fd1e673d151ea38b71e11d55
[216] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4ed8a6bb083bfcc21f1ed66a474b03c0386e4b34
[217] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=f18df228997fb716990590d248663981a15f17d4
[218] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c3b1b1cbf002e65a3cabd479e68b5f35886a26db
[219] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c3a9c2109f84882b9b3178f6b1838d550d3df0ec
[220] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=45b03d5e8e674eb6555b767e1c8eb40b671ff892
[221] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a41f1a4715f26f7bc4d047d0bc7710145c8e69c7
[222] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=963f0cf6d116d83c558a8efe9045c1c5ad7aed34
[223] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7ac9bcd5da59dd96eb1153d3fc04c3471fa5c09d
[224] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=d29a2e943867bfa48f72ee6e99723a1b29fe6f7e
[225] http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b58a4cc51f4f569c6a86979890f9b237a504ab6b
[226] http://www.heise.de/open/artikel/kernel-log/
[227] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[228] http://www.heise.de/open/
[229] mailto:thl@ct.heise.de
[230] mailto:thl@ct.de