Features/20SecondStartup

= 20SecondStartup =

Summary
Boot faster than the F10 Features/30SecondStartup. Make Fedora boot and shut down faster. The goal is to be at the login screen in 20 seconds and be as fast as possible after the login (gnome-session).

Owner

 * Name: HaraldHoyer 

Current status

 * Targeted release:  Fedora 11
 * Last updated: (Apr 14 2009)
 * Percentage of completion: 100% ( 10/10 filed bugs resolved, rest moved to F12)

Detailed Description
Identify bloated tasks in the boot process and make them faster and use less disk I/O.

See: Fedora 10 top 5 disk usage tasks http://www.harald-hoyer.de/personal/blog/fedora-10-disk-io

See, if sreadahead can be used (needs kernel patch), and if Upstart can start core services in parallel.

Benefit to Fedora
A faster boot makes for happy users.

Scope
Possibly involves all packages that are involved in the boot sequence, udev, module-init-tools, kernel, nash, upstart, readahead, setroubleshoot, gdm.

Test Plan

 * install bootchart
 * modify /sbin/bootchartd to exit on "firefox" not "gdm kdm" etc. and sleep 10-20 seconds after that
 * reboot, login, start firefox, close firefox
 * measure time until closing of firefox

See detailed instructions and test results at QA/Test Days/2009-02-19.

User Experience
Turn on computer, wait 20 seconds, select user on login screen.

Dependencies

 * kernel for sreadahead or another mechanism to gather information about what files are used during the boot process

Contingency Plan
This is an incremental feature. If we don't quite get down to 20 seconds, too bad, we can just take whatever improvements we have.

Documentation

 * Fedora 10 top 5 disk usage tasks
 * http://www.harald-hoyer.de/personal/blog/fedora-10-disk-io


 * Fedora 10 - Boot Analysis
 * https://www.harald-hoyer.de/personal/blog/fedora-10-boot-analysis


 * Upstart
 * http://upstart.ubuntu.com/wiki/


 * sreadahead
 * http://code.google.com/p/sreadahead/


 * setroubleshoot
 * https://fedorahosted.org/setroubleshoot/


 * Summary of the Fedora 11 - 20 Seconds Boot Feature - Test Day
 * http://www.harald-hoyer.de/personal/blog/20_Seconds_Boot_Feature_Test_Day

Resolved Bugs

 * sreadahead review (kernel patch missing, though)
 * reimplement /usr/bin/fedora-setup-keyboard in C to speed up boot (fixed)
 * only call fedora-setup-keyboard for keyboards (fixed)
 * setroubleshoot lazy import (fixed)
 * setroubleshoot lazy rpm usage (fixed)
 * auditd cannot be started via Upstart (fixed)
 * fuse has an unnecessary init script (fixed)
 * use dbus service-activation to start the kerneloops daemon (fixed)
 * var/run/gdm/auth-for* directories not removed.... slows boot (fixed)

Bugs for F12

 * disturbing hacks to start nfs-utils services on demand (not entirely serious)
 * (RFC, PATCH) start cups on demand, using xinetd
 * start the bluetooth service via udev
 * microcode_ctl busy polling microcode_ctl ships a pointless init script

Release Notes
To reduce boot time, the setroubleshoot daemon and several small bottlenecks were removed. Regressions in using the readahead service were removed by setting low I/O priorities. Readahead now profiles the system every time the rpm database changes. The behavior of readahead can be tweaked by editing /etc/sysconfig/readahead.

Comments and Discussion

 * See Talk:Features/20SecondStartup