Login
Newsletter
Werbung

Di, 28. Februar 2006, 10:52

Software::Kernel

Build-Fehlern und Regressionen im Linux-Kernel auf der Spur

Jesper Juhl hat das Compilieren des Kernels getestet und festgestellt, dass die meisten Kernel-Konfigurationen zu Fehlern führen.

In einer Mail an die Linux-Kernel-Liste gab Jesper Juhl seine Ansicht zum besten, daß es im Kernel zahlreiche Abhängigkeitsprobleme gebe, die in bestimmten Konfigurationen schon beim Compilieren zu Fehlern führen. Zudem erhalte man beim Compilieren eine sehr hohe Zahl von Warnungen. Warnungen sind im harmlosesten Fall störend, im schlimmsten Fall deuten sie auf einen echten Fehler hin.

Seine Vorgehensweise war einfach. Er erstellte 100 verschiedene Kernel-Konfigurationen, davon 95 mit »make randconfig« und fünf in verschiedenen anderen Variationen. Von diesen ließen sich nur 18 fehlerfrei compilieren. Allerdings verwendete Juhl keine offizielle Kernelversion, sondern Version 2.6.16-rc4-mm2 von Andrew Morton, die zahlreiche experimentelle Patches enthält. Ob sich Juhls Analyse auf die offizielle Kernelversion übertragen läßt, ist dementsprechend nicht sicher. Adrian Bunk relativierte die von Juhl gefundenden Zahlen, indem er feststellte, daß viele der in »make randconfig« erzeugten Konfigurationen für normale Anwender nicht von Belang seien.

Juhl fand heraus, dass es oft zu Problemen kommt, wenn CONFIG_STANDALONE nicht gesetzt ist, weil dann Firmware-Dateien fehlen, die der Kernel nicht mitliefert. Dies soll allein für ein Viertel aller Probleme verantwortlich sein. Ein weiteres häufiges Problem sind ungültige Kombinationen von fest eincompilierten und als Modul vorliegenden Treibern. Juhl erhielt außerdem 16152 Compilerwarnungen von 645 Stellen im Code. Adrian Bunk erklärte, daß ein Großteil der Warnungen von unüblichen Konfigurationsoptionen herrühre. Mit einer Handvoll Korrekturen könnte man bereits einen Großteil der verbleibenden Warnungen und Build-Fehler beseitigen. Insgesamt stehe der Kernel nicht so schlecht da, wie Juhl behauptet habe. Wenn Juhls Analyse jedoch dazu führt, daß andere Leute sich die aktuelle Kernel-Testversion in ähnlicher Weise vornehmen und nur einige der häufigsten Probleme beseitigen, dann war seine Arbeit sinnvoll.

Auch nach Regressionen wird neuerdings verstärkt gefahndet. Nachdem Linus Torvalds die Kernel-Testversion 2.6.16-rc5 angekündigt hatte, listete Adrian Bunk sechs bekannte Regressionen in dieser Version auf, also Dinge, die in Kernel 2.6.15 noch korrekt funktionierten, aber danach nicht mehr. Kernel 2.6.16 wird wahrscheinlich erst veröffentlicht, wenn alle bekannten Regressionen ausgebügelt sind. Zusätzliche Tester werden immer benötigt.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung