26.02.2014 Aufrufe

Linux-Magazin Clean Linux (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Aktuell<br />

www.linux-magazin.de Kernel-News 09/2013<br />

20<br />

Schneller Booten auf Speicherriesen<br />

Der SGI-Entwickler Nathan<br />

Zimmer bemerkte, dass das<br />

Booten auf Hochleistungsrechnern<br />

mit viel Speicher sehr<br />

lange dauert. Mit 16 TByte<br />

RAM zum Beispiel kann es<br />

über eine Stunde in Anspruch<br />

nehmen, die hauptsächlich<br />

beim Initialisieren des Arbeitsspeichers<br />

vergeht. Ein Patch<br />

von ihm und seinem Kollegen<br />

Mike Travis sorgt dafür, dass<br />

zuerst die CPUs starten. So<br />

lässt sich die Speicherinitialisierung<br />

auf mehrere Prozessoren<br />

verteilen.<br />

Greg Kroah-Hartman fiel auf,<br />

dass die beiden ihr Patch als<br />

Konfigurationsoption vorgesehen<br />

hatten. Das hält er<br />

für unnötig vorsichtig, denn<br />

schließlich sei schnelleres<br />

Booten stets ein Gewinn für<br />

den Anwender. H. Peter Anvin<br />

schloss sich diesem Argument<br />

an und hält das Feature für<br />

alle Rechner ab einer gewissen<br />

RAM-Größe für sinnvoll,<br />

geschätzt ab 28 GByte.<br />

Daneben war Peter neugierig,<br />

wie groß das Patch sei, und<br />

Nathan antworte, es umfasse<br />

nur 400 Codezeilen. Peter<br />

hatte aber den binären Maschinencode<br />

gemeint, und der<br />

vergrößert das Kernelimage<br />

um 32 KByte. Anvin hält das<br />

für erstaunlich umfangreich.<br />

„Ist das alles Initcode?“, fragte<br />

er, „32 KByte Laufzeitcode,<br />

der immer ausgeführt wird, ist<br />

doch nicht ganz unproblematisch.“<br />

Nathan Zimmer meinte,<br />

echter Runtimecode seien<br />

wohl nur 24 KByte.<br />

Es folgte eine Diskussion über<br />

alternative Umsetzungen der<br />

Idee. Der x86-Kenner Yinghai<br />

Lu brachte Anregungen ein<br />

und Ingo Molnar schlug ein<br />

ganz anderes Konzept vor, das<br />

den Buddy-Allocator verwendet,<br />

der den Speicher in kleinere<br />

Einheiten aufteilt. Welche<br />

Lösung sich auch durchsetzt,<br />

die Besitzer großer Maschinen<br />

dürfen sich wohl bald über<br />

rascheres Booten freuen. n<br />

Anonymous Memory von Android<br />

Der Google-Entwickler Colin<br />

Cross findet es schade, wenn<br />

Features in »linux‐next« liegenbleiben.<br />

Einige würde er<br />

lieber im offiziellen Kernelzweig<br />

sehen, insbesondere<br />

»ashmem« (Android Shared<br />

Memory), das mehrere Arten<br />

von anonymem Arbeitsspeicher<br />

umsetzen kann.<br />

Besonders gefällt Colin Named<br />

Anonymous Memory. Hinter<br />

dieser Bezeichnung steckt<br />

eine Speicherregion, die als<br />

Datei unter »/proc/pid/maps«<br />

auftaucht. Er schreibt: „Die<br />

Dalvik-VM macht von diesem<br />

Feature ausgiebig Gebrauch<br />

[...]. Es erlaubt Speicher für<br />

verschiedene Zwecke über<br />

mehrere Prozesse hinweg zusammenzufassen.<br />

Android benutzt<br />

es in seinen Tools »dumpsys<br />

meminfo« und »librank«,<br />

um die Speichernutzung von<br />

Java-Heaps, JIT-Caches und<br />

anderem zu bestimmen.“<br />

Christoph Hellwig schien zunächst<br />

nicht davon überzeugt,<br />

dass das Feature tatsächlich<br />

so nützlich sei. Er verstand<br />

nicht, „was »ashmem« besser<br />

machen sollte als ein shared<br />

»mmap« von »/dev/zero«“.<br />

Colin erklärte ihm daher,<br />

»ashmem« binde den Speicher<br />

an einen Filedeskriptor.<br />

Damit lasse er sich einem<br />

anderen Prozess übergeben,<br />

was mit »/dev/zero« nicht<br />

funktioniere – es würde eine<br />

neue Speicherregion herauskommen.<br />

Christoph war zunächst<br />

erstaunt, konsultierte<br />

dann aber den Quelltext von<br />

»/dev/zero« und gab Colin<br />

schließlich recht.<br />

Darauf folgte eine Diskussion<br />

über Implementierungsdetails,<br />

an denen sich auch John<br />

Stultz vom Linaro-Projekt beteiligte.<br />

Ein konkretes Konzept<br />

ergab sich dabei zwar nicht,<br />

aber dennoch scheint das<br />

Android-Feature »ashmem«<br />

ein aussichtsreicher Kandidat<br />

für den Mainline-Kernel von<br />

<strong>Linux</strong> zu sein. <br />

n<br />

32-Bit-Kernel auf 64-Bit-Hardware<br />

Der Software-Entwickler Pierre-Loup<br />

A. Griffais klagte,<br />

das Kopieren von Dateien laufe<br />

in letzter Zeit immer langsamer,<br />

wenn man einen 32-Bit-<br />

Kernel und mehr als 16 GByte<br />

Arbeitsspeicher verwendet.<br />

Darauf erwiderte Rik van Riel:<br />

„Wenn du so viel Speicher in<br />

deinem System hast, solltest<br />

du einen 64-Bit-Kernel verwenden,<br />

ansonsten treten im<br />

Memory Management viele<br />

Grenzsituationen auf.“ Johannes<br />

Weiner fügte an: „Dabei<br />

kannst du das 32-Bit-Userland<br />

behalten, tausche einfach den<br />

Kernel aus.“<br />

Pierre-Loup antwortete: „Viele<br />

Distributionen liefern einen<br />

32-Bit-Kernel als Standard für<br />

Anwender, die unsicher sind.<br />

Dabei ist PAE aktiviert, um die<br />

Mengen an Arbeitsspeicher in<br />

modernen Rechnern zu unterstützen.“<br />

Da konnte Linus Torvalds nicht<br />

mehr an sich halten: „PAE ist<br />

eine Notlösung. Das ganze<br />

Konzept taugt nichts, und<br />

alle, die einen 32-Bit-Kernel<br />

mit 16 GByte RAM betreiben,<br />

haben nicht die geringste Ahnung.<br />

So etwas tut man nicht.<br />

Sie sollen auf 64 Bit upgraden<br />

oder sich mit der miesen I/​O-<br />

Leistung abfinden.“ Er fügte<br />

hinzu: „Beschwer dich bei<br />

deiner Distribution, wenn sie<br />

keinen 64-Bit-Kernel liefert.<br />

Aber wir Kernelentwickler<br />

werden uns nicht damit abmühen,<br />

PAE zu optimieren. Es<br />

lohnt sich einfach nicht.“<br />

Er habe für sich persönlich<br />

zwar einen 64-Bit-Kernel<br />

kompiliert, räumte Pierre-<br />

Loup ein, für viele seiner<br />

Endanwender sei das aber<br />

keine Option. „Ich werde die<br />

Distributionen darauf hinweisen,<br />

dass PAE-Kernel angesichts<br />

der auftretenden Probleme<br />

und der Einstellung der<br />

Kernelentwickler keine gute<br />

Standardlösung sind.“<br />

Rik van Riel schlug schließlich<br />

einen gangbaren Mittelweg<br />

vor: „Man könnte den<br />

Speicher, den ein PAE-Kernel<br />

nutzt, auf eine bestimmte<br />

Menge beschränken, bei der<br />

es noch nicht zu Problemen<br />

kommt, etwa 8 oder 12 GByte.<br />

Daneben könnte der Kernel<br />

eine Warnung ausgeben, die<br />

dem Anwender mitteilt, er<br />

solle auf einen 64-Bit-Kernel<br />

upgraden, um seinen gesamten<br />

Arbeitsspeicher zu nutzen.“<br />

Das gefiel Pierre-Loup.<br />

(Zack Brown/​mhu) n

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!