2009.1-speedboot

Aus Mandriva Community Wiki

Wechseln zu: Navigation, Suche

SpeedBoot ist ab der 2009 Spring Beta-Version verfügbar.

Was tut Speedboot?

Speedboot startet alle notwendigen Funktionen für das graphische System (den Display Manager) zuerst und fährt dann fort, alle weiteren Funktionen im Hintergrund zu starten.

Wie wird es umgesetzt?

Wir nutzen Techniken, die wir bereits früher in einigen unserer OEM-Produkte mit finit verwendet haben, nutzen aber eine standardkonformere Implementation, die weiterhin auf den üblichen initscrpits aufbaut.

Um es zu ermöglichen, die Minimaldienste für den Display Manager zu starten, führen wir den Runlevel S ein (der nur fünf Dienste enthält: acpid, dbus, hal, syslog und dm). Unglücklicherweise akzeptiert chkconfig nur numerische Runlevel-Angaben, weswegen wir den Runlevel S als Runlevel 7 implementiert haben (beide stellen den gleichen Runlevel dar, aber 7 muss in den initscripts genutzt werden).

Wenn im Speedboot-Modus gebootet wird, werden viele Vorgänge, die in den Initscripts durchgeführt werden, ignoriert. Dies ist der Grund, warum Speedboot auf Ihrem System eventuell nicht funktioniert.

Für die erste Phase von Speedboot wurde so viel wie möglich in rc.sysinit deaktiviert. Eine Vorgänge müssen nur so lange hinausgeschoben werden, bis der Display Manager gestartet ist, es wird versucht werden, einige hiervon in die zweite Phase von Speedboot zu integrieren.

In Phase 2 (oder 3) von Speedboot ird Speedboot automatisch aktiviert werden, wenn einige Bedingungen erfüllt sind und keine hiermit in Konflikt stehenden Eigenschaften im System aktiviert sind wie in etwa Crypto FS, Raid, Netzwerk Authentifizierung. Wenn Speedboot fehlschlägt, wird das System automatisch auf einen normalen Bootvorgang zurückfallen, Speedboot wird automatisch nicht wieder versucht werden.

Zur Zeit ist Readahead vollständig deaktiviert, wenn Speedboot genutzt wird. Unsere Maßnahmen zeigten Regressionen, wenn entweder Readahead oder Spreadahead genutzt werden, dies wurde allerdings nicht mit SSD-Laufwerken gemacht.

Wie kann ich Speedboot nutzen?

Als Standard wird Speedboot seit der 2009.1 rc2 automatisch aktiviert, hierbei wird die folgende Vorgehensweise genutzt:

  • beim ersten Bootvorgang einer bestimmten Kernelversion: Speedboot ist deaktiviert und beim Boot-Vorgang wird überprüft, ob gewisse Bedingungen dagegen sprechen, Speedboot zu nutzen.
  • beim zweiten Bootvorgang derselben Kernelversion: Wenn die Bedingungen erfüllt wurden, wird Speedboot aktiviert und der Status gespeichert, wenn die Bedingungen nicht erfüllt wurden, wird ein weiteres Mal getestet (z.B. wenn ein dkms-Problem bestand oder ähnliches) und entweder für diesen Kernel deaktiviert (wenn der Test fehlschlägt) oder reaktiviert.
  • Speedboot wird automatisch deaktiviert, wenn die Netzwerk-Authentifizierung aktiviert oder ein anderer Runlevel als 5 gesetzt ist.
  • um Speedboot zu deaktivieren oder zu erzwingen, kann der Standardwert in der Datei /etc/sysconfig/speedboot geändert werden, um eine einmalige Änderung durchzuführen, kann man die Bootoption speedboot=yes/no/auto/probe in der Kernel-Kommandozeile nutzen.

speedboot=probe is used to reset status for a specific kernel version (and redo the check) and should only be added manually on kernel command line.

status for speedboot is readable in /var/lib/speedboot/status

The only missing things in speedboot are :

  • test disk speed to enable or not readahead (it is always enabled but will slow things on slow harddisk).
  • tune readahead "split" between first and second phase and maybe force readahead collection when speedboot has been enabled back.

Of course, we would like to collect as much bootchart data as possible, both when speedboot is enabled and when it is not. Bootchart howto (en)

If speedboot is failing on your system, we are interested too, so please fill a bug report against initscripts and attach both bootchart graphs with and without speedboot enabled.

Persönliche Werkzeuge