Login
Newsletter
Werbung

Mo, 20. August 2012, 13:55

Software::Kernel

Linux: Experimentelle Unterstützung für LTO vorgestellt

Mit einer Serie von Patches hat Andi Kleen den Kernel um eine Unterstützung der Link Time-Optimierung (LTO) des GCC erweitert. Der Kernel-Entwickler verspricht durch die Neuerungen eine Steigerung der Geschwindigkeit. Doch auch Regressionen sich nicht ausgeschlossen.

Larry Ewing

Bereits seit geraumer Zeit unterstützt auch GCC eine Link Time-Optimierung (LTO). Dazu exportiert die GNU Compiler Collection ihre internen Strukturen in Form von GIMPLE und ermöglicht auch anderen Bereichen der Suite die Möglichkeit, weitergehende Optimierungen vor dem eigentlichen Linken einer Applikation durchzuführen. Als Beispiel kann die Optimierung von Funktionsaufrufen gelten. So weiß beispielsweise der der Compiler erst beim Linken, ob Funktionen, die nicht als static markiert wurden, vielleicht doch nie aufgerufen werden. Entsprechend kann der Linker dann reagieren, den generierten Code vereinfachen und beispielsweise unnötige Stack-Operationen eliminieren.

Mit einer Reihe von Patches will Andi Kleen die Verbesserungen des GCC nun auch dem Kernel zugänglich machen. Die Optimierungen umfassen zahlreiche Änderungen am Kern und diversen Modulen von Linux. Dementsprechend kann LTO den Kernel nicht nur signifikant beschleunigen, sondern auch als Nebeneffekt diverse neue Fehler in Linux einschleusen. Denn die teils aggressiven Optimierungen verbessern nicht nur die Codebasis, sondern entfernen unter Umständen auch Code, den sie für nicht relevant halten, oder führen Aktionen durch, die zu Abstürzen oder einem Fehlverhalten führen können.

Ein weiterer Nachteil der LTO-Unterstützung stellt die Ausdehnung der Compilerzeit dar. So soll sich laut Kleen der typische Vorgang um den Faktor 2 bis 4 verlängern. Auch die Anforderungen an die Hardware steigen. So benötigt eine typische Kernel-Konfiguration für einen regulären Compiliervorgang um die 4 GB Speicher. Große Konfigurationen können bis zu 9 GB an RAM benötigen, was unter anderem dazu führt, dass der Kernel nicht mehr auf 32-Bit-Systemen erstellt werden kann.

Kleen ist sich deshalb sicher, dass die Optimierung weniger für Entwickler als für Distributoren und Endanwender interessant ist. Belohnt wird die Mühe mit einer gesteigerten Geschwindigkeit des Kernels, die sich laut dem Entwickler in vielen Bereichen des Kernels manifestiert.

Interessenten können die explizit aus experimentell gekennzeichneten Änderungen im Git-Repositorum von Kleen finden. Der Entwickler bietet dazu einen kompletten Kernel-Baum an. Neben den Quellen werden zudem auch neue Versionen der Linux-Binutils und die Version 4.7 des GCC benötigt. Eine Anleitung zum Bau liefert weitere Hinweise und eine Installationsanleitung.

Werbung
Kommentare (Insgesamt: 4 || Alle anzeigen )
Re: static (Demon, Di, 21. August 2012)
Re: static (panzi, Di, 21. August 2012)
static (Anonymous, Di, 21. August 2012)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung