Linux: Dependency Hell bei Kernel-Headern entwirren

Um den langjährigen Kernel-Entwickler Ingo Molnar war es in letzter Zeit still geworden und das hat einen Grund. Molnar arbeitet seit einiger Zeit im Stillen an einer der größten Änderungsaktionen, die der Kernel je gesehen hat. Dabei geht es um die komplette Überarbeitung der Kernel-Header, um so die Build-Zeiten des Kernels zu verringern.

Rund 10.000-Header Dateien

Dies wurde nötig, da sich in den letzten 30 Jahren ein Dickicht von rund 10.000 einzelnen Header-Dateien angesammelt hat, die eine Unzahl gegenseitiger Abhängigkeiten aufweisen, die vor allem den Bau des Kernels verlangsamen und insgesamt schwer zu handhaben sind. Molnar nennt das Projekt »Fast Kernel Headers«, dessen erste Version er gestern als RFC (Request for Comment) eingereicht hat.

Fast Kernel Headers

Seit Molnar Ende 2020 mit den Arbeiten an seinem Projekt begann, stieg die Zahl der nötigen Commits auf 2.200, verteilt auf 15 Sub-Systeme des Kernels. die in der Gesamtheit mehr als 25.000 Quell-Dateien des Kernels anfasst.

25,288 files changed, 178,024 insertions(+), 74,720 deletions(-)

Molnar erreicht durch die Reduzierung der Abhängigkeiten der Header-Dateien untereinander Verbesserungen bei der absoluten und der inkrementellen Build-Geschwindigkeit je nach Konfiguration im Bereich von 50 – 80 %, wie er mit Benchmarks in seiner Ankündigung belegt. Ich weiß nicht, wie viele Kernel von den Entwicklern zum Testen vor der Veröffentlichung eines neuen Kernels gebaut werden, aber es sind bestimmt nicht wenige. Somit sind diese Zahlen ein Ergebnis, dass sich sehen lassen kann, sollte Molnars Vorschlag angenommen werden.

GKH nicht abgeneigt

Durch Verringerung der Abhängigkeiten und anderer Maßnahmen konnte die Anzahl der Zeilen (LOC) der einzelnen Header zum Teil massiv reduziert werden, was die verkürzten Build-Zeiten erklärt. Molnar schreibt, dass erst ab einer bestimmten Anzahl aufgelöster Abhängigkeiten zum Ende des Projekts Reduzierungen von mehr als 20 % der Zeit zum Bau eines Kernels erreicht werden konnten, weshalb die enorme Zahl von Commits nötig sei, um das bestmögliche Ergebnis zu erzielen. Die Diskussion hat begonnen und wird so schnell vermutlich nicht verstummen. Greg Kroah-Hartman (GKH) ist als erster Kommentator beeindruckt von den Einsparungen und generell nicht abgeneigt.

Teilt den Beitrag, falls ihr mögt

Abonnieren
Benachrichtige mich bei
6 Kommentare
Most Voted
Newest Oldest
Inline Feedbacks
View all comments