bk99.de entertain the web since 1997

Kernel-Entwickler will der "Abhängigkeitenhölle" entkommen

Zusammenfassung

Ingo Molnar stellte im Januar 2022 das Projekt „Fast Kernel Headers“ vor, eine umfassende Überarbeitung der rund 10.000 Header-Dateien des Linux-Kernels. Mit über 2200 Patches, die mehr als die Hälfte aller Quelldateien änderten, sollte die „Abhängigkeitenhölle“ aufgelöst werden. Laut ersten Benchmarks verkürzte sich die Build-Zeit um 78 Prozent, bei inkrementellen Builds teils um deutlich mehr.

Ideen

  • Verflochtene Header-Abhängigkeiten zwingen den Compiler, unnötig viel Code zu verarbeiten.
  • Typen- und API-Definitionen wurden voneinander getrennt.
  • Inline-Funktionen wanderten aus Headern heraus.
  • Header sollten eigenständig übersetzbar werden.

Einsichten

  • Technische Schulden in der Build-Struktur kosten bei großen Projekten täglich viel Rechenzeit.
  • Sehr große Umbauten sind schwer in den Hauptzweig zu bringen, selbst wenn sie messbar helfen.

Fakten

  • Die Patches waren auf vier CPU-Architekturen portiert.
  • Greg Kroah-Hartman gab die erste, positive Rückmeldung.

Referenzen

Kritik

  • Die Meldung übernimmt die Benchmark-Zahlen des Autors, unabhängige Messungen fehlen.

Empfehlungen

  • Nutze ccache oder inkrementelle Builds, um Kernel-Übersetzungen zu beschleunigen.
  • Halte in eigenen C-Projekten Header schlank und vermeide unnötige gegenseitige Einbindungen.

Originalartikel lesen →

Im Webarchiv suchen