Linux Kernel/Boot Time: Difference between revisions

From Yocto Project
Jump to navigationJump to search
No edit summary
Line 29: Line 29:
* http://elinux.org/Boot_Time
* http://elinux.org/Boot_Time


== Bootgraph Results ==
== Journal ==
=== Initial State: 2.6.34 (UP), USB ===
=== Bootgraph Results ===
==== Initial State: 2.6.34 (UP), USB ====
[[File:n450-2.6.34-usb.png|400px|thumb|right]]
[[File:n450-2.6.34-usb.png|400px|thumb|right]]
* Yocto 1.0
* Yocto 1.0
Line 41: Line 42:
<br style="clear:both" />
<br style="clear:both" />


=== 2.6.34 (SMT), SSD ===
==== 2.6.34 (SMT), SSD ====
[[File:n450-2.6.34-smt-ssd.png|400px|thumb|right]]
[[File:n450-2.6.34-smt-ssd.png|400px|thumb|right]]
* Yocto 1.0
* Yocto 1.0
Line 51: Line 52:
<br style="clear:both" />
<br style="clear:both" />


=== 2.6.34 (SMT), SSD, NOKMS ===
==== 2.6.34 (SMT), SSD, NOKMS ====
[[File:n450-2.6.34-smt-ssd-nokms.png|400px|thumb|right]]
[[File:n450-2.6.34-smt-ssd-nokms.png|400px|thumb|right]]
* Yocto 1.0
* Yocto 1.0
Line 62: Line 63:
<br style="clear:both" />
<br style="clear:both" />


=== 2.6.37 (SMT), SSD, NOKMS ===
==== 2.6.37 (SMT), SSD, NOKMS ====
[[File:n450-2.6.37-ssd-nokms-serial.png|400px|thumb|right]]
[[File:n450-2.6.37-ssd-nokms-serial.png|400px|thumb|right]]
* Yocto 1.0+
* Yocto 1.0+
Line 71: Line 72:
<br style="clear:both" />
<br style="clear:both" />


=== 2.6.37 (SMT), SSD, NOKMS, No Serial ===
==== 2.6.37 (SMT), SSD, NOKMS, No Serial ====
[[File:n450-2.6.37-ssd-nokms.png|400px|thumb|right]]
[[File:n450-2.6.37-ssd-nokms.png|400px|thumb|right]]
* Yocto 1.0+
* Yocto 1.0+

Revision as of 21:13, 22 June 2011

Vision

Provide an example layer which demonstrates how to minimize the boot-time of the Intel N-450 Development platform. Using a core-image-minimal image, boot to a login prompt in 2.0 seconds.

Design

The current linux-yocto kernel configuration does not focus on minimal boot time. Eliminating necessary Linux kernel config options will reduce the image size as well as the boot time. Various boot parameters can also have a significant impact. Identify specific items through exploration of:

  • linux/scripts/bootgraph.pl
  • comparison with MeeGo .config
  • discussions with MeeGo leads
  • survey of talks and papers on the subject
  • research coreboot and other BIOS replacements for the N450

The boot-time budget follows:

  • BIOS: 0.5s
  • Kernel + Modules: 1s
  • Init to prompt: 0.5s

Next Steps

  • what runs before start @ 0.38s
  • e100_init_module (0.4s)
  • [23]_async_port_probe (0.8s-1.3s)
  • alsa_card_azx_init (0.4s)
  • serial8250* (0.4s)
  • Current total: 2.6s (2.2s without async_port)

Resources

Journal

Bootgraph Results

Initial State: 2.6.34 (UP), USB

N450-2.6.34-usb.png
  • Yocto 1.0
  • Intel N-450
  • USB flash boot media
  • linux-yocto 2.6.34
  • Total boot time: 28.72s
    • Some 15 seconds is due to the default BIOS
  • Bootgraph logged 12s


2.6.34 (SMT), SSD

N450-2.6.34-smt-ssd.png
  • Yocto 1.0
  • Intel N-450
  • SATA SSD boot media
  • linux-yocto 2.6.34 w/ SMT
  • Bootgraph logged 6.32s
    • SSD saves some 6 seconds


2.6.34 (SMT), SSD, NOKMS

N450-2.6.34-smt-ssd-nokms.png
  • Yocto 1.0
  • Intel N-450
  • SATA SSD boot media
  • Boot parameters: i915.modeset=0
  • linux-yocto 2.6.34 w/ SMT
  • Bootgraph logged 3.98s
    • NOKMS saves some 2.36s


2.6.37 (SMT), SSD, NOKMS

N450-2.6.37-ssd-nokms-serial.png
  • Yocto 1.0+
  • Intel N-450
  • SATA SSD boot media
  • Boot parameters: i915.modeset=0
  • Bootgraph logged 4.05s


2.6.37 (SMT), SSD, NOKMS, No Serial

N450-2.6.37-ssd-nokms.png
  • Yocto 1.0+
  • Intel N-450
  • SATA SSD boot media
  • Boot parameters: i915.modeset=0 console=tty0
    • All others also have console=ttyS0,115200
  • Bootgraph logged 2.39s
    • no serial saves 1.66s


Notes

Discussion w/ Arjan

  • Establish a budget
  • Things to look at first
    • boot media
      • use SSD or MMC over Standard IO
      • avoid USB and spinning media
    • SATA
      • restrict ports to those being used
    • Kernel Mode Switching (KMS)
    • Eliminate UDEV