Difference between revisions of "Boot Time"

From eLinux.org
Jump to: navigation, search
(Articles)
(add to splash screen info)
Line 60: Line 60:
 
**[http://kernel.org/doc/ols/2004/ols2004v1-pages-79-88.pdf Methods to Improve Boot-up Time in Linux] - Paper prepared for 2004 Ottawa Linux Symposium
 
**[http://kernel.org/doc/ols/2004/ols2004v1-pages-79-88.pdf Methods to Improve Boot-up Time in Linux] - Paper prepared for 2004 Ottawa Linux Symposium
 
**{{pdf|ReducingStartupTime v0.8.pdf|Reducing Startup Time in Embedded Linux Systems}} - December 2003 Presentation describing some existing boot-up time reduction techniques and strategies.
 
**{{pdf|ReducingStartupTime v0.8.pdf|Reducing Startup Time in Embedded Linux Systems}} - December 2003 Presentation describing some existing boot-up time reduction techniques and strategies.
 +
 +
=== Splash Screen projects ===
 +
* http://splashy.alioth.debian.org/wiki/ Splashy - technology to put up a spalsh screen early in the boot sequence.  This is
 +
user-space code.
 +
** This seems to be the most current splash screen technology, for major distributions. A framebuffer driver for the kernel is required.
 +
* [http://dev.gentoo.org/~spock/projects/gensplash/ Gentoo Splashscreen] - newer technology to put a splash screen early in the boot sequence
 +
** See the HOWTO at: [http://gentoo-wiki.com/HOWTO_fbsplash HOWTO FBSplash]
 +
* [http://butterfeet.org/?p=8 PSplash] - PSplash is a userspace graphical boot splash screen for mainly
 +
embedded Linux devices supporting a 16bpp or 32bpp framebuffer.
 +
* [http://www.bootsplash.org/ bootsplash.org] - put up a splash screen early in boot sequence
 +
** This project requires kernel patches
 +
** This project is now abandoned, and work is being done on Splashy.
 +
  
 
== Additional Projects/Mailing Lists/Resources ==
 
== Additional Projects/Mailing Lists/Resources ==
Line 68: Line 81:
  
 
=== Others ===
 
=== Others ===
*[http://www.bootsplash.org/ bootspash.org] - technology to put up a splash screen early in boot sequence
+
 
*[http://dev.gentoo.org/~spock/projects/gensplash/ Gentoo Splashscreen] - newer technology to put a splash screen early in the boot sequence
 
**see the HOWTO at: [http://gentoo-wiki.com/HOWTO_fbsplash HOWTO FBSplash]
 
* [http://butterfeet.org/?p=8 PSplash] - PSplash is a userspace graphical boot splash screen for mainly
 
embedded Linux devices supporting a 16bpp or 32bpp framebuffer.
 
 
*[http://www.linuxdevices.com/news/NS5907201615.html FSMLabs Fastboot] - press release by FSMLabs about fast booting of their product. Is any of this published?
 
*[http://www.linuxdevices.com/news/NS5907201615.html FSMLabs Fastboot] - press release by FSMLabs about fast booting of their product. Is any of this published?
  
 
*[http://tree.celinuxforum.org/CelfPubWiki/ snapshot boot] - a technology uses software resume to boot up the system quickly.
 
*[http://tree.celinuxforum.org/CelfPubWiki/ snapshot boot] - a technology uses software resume to boot up the system quickly.
 
[[Category:Boot Time]]
 
[[Category:Boot Time]]

Revision as of 15:55, 28 August 2008

Boot Time includes topics such as Boot Time measurement, Boot Time reduction, and Boot Time analysis. Boot Time directly impacts the first perception an end user has of a consumer electronic product. Regardless of how attractive or well designed a consumer electronic device is, the time required to move the device from off to an interactive, usable state is critical to obtaining a positive end user experience. Turning on a device is Use Case #1.

Technology/Project Pages

The following are individual pages with information about various technologies relevant to improving Boot Time for Linux. Some of these describe local patches available on this site. Others point to projects or patches maintained elsewhere.

Measuring Boot-up Time

  • Printk Times - simple system for showing timing information for each printk.
  • Kernel Function Trace - system for reporting function timings in the kernel.
  • Linux Trace Toolkit - system for reporting timing data for certain kernel and process events.
  • Oprofile - system-wide profiler for Linux.
  • Bootchart - a tool for performance analysis and visualization of the Linux boot process. Resource utilization and process information are collected during the user-space portion of the boot process and are later rendered in a PNG, SVG or EPS encoded chart.
  • Bootprobe - a set of System Tap scripts for analyzing system bootup.
  • and, let us not forget: "cat /proc/uptime"

[ FIXTHIS - should mention (and publish) sstream here ]

[ FIXTHIS - should also mention initcall_debug (kernel command line option) here - it shows driver init times for many drivers]

Technologies and Techniques for Reducing Boot Time

Bootloader speedups

Kernel speedups

  • Disable Console - Avoid overhead of console output during system startup.
  • RTC No Sync - Avoid delay to synchronize system time with RTC clock edge on startup.
  • Short IDE Delays - Reduce duration of IDE startup delays (this is effective but possibly dangerous).
  • Hardcode kernel module info - Reduce the overhead of loading a module, by hardcoding some information used for loading the relocation information
  • IDE No Probe - Force kernel to observe the ide<x>=noprobe option.
  • Preset LPJ - Allow the use of a preset loops_per_jiffy value.
  • Threaded Device Probing - Allow drivers to probe devices in parallel.

User-space and application speedups

Information

Articles

  • Optimizing Linker Load Times
    • (introducing various kinds of bootuptime reduction, prelinking, etc.)
  • Benchmarking boot latency on x86
    • A tutorial on using TSC register and the kernel PRINTK_TIMES feature to measure x86 system boot time, including BIOS, bootloader, kernel and time to first user program.

Case Studies

Splash Screen projects

user-space code.

    • This seems to be the most current splash screen technology, for major distributions. A framebuffer driver for the kernel is required.
  • Gentoo Splashscreen - newer technology to put a splash screen early in the boot sequence
  • PSplash - PSplash is a userspace graphical boot splash screen for mainly

embedded Linux devices supporting a 16bpp or 32bpp framebuffer.

  • bootsplash.org - put up a splash screen early in boot sequence
    • This project requires kernel patches
    • This project is now abandoned, and work is being done on Splashy.


Additional Projects/Mailing Lists/Resources

Kexec

  • Kexec is a system which allows a system to be rebooted without going through BIOS. That is, a Linux kernel can directly boot into another Linux kernel, without going through firmware. See the white paper at: kexec.pdf

Others

  • FSMLabs Fastboot - press release by FSMLabs about fast booting of their product. Is any of this published?
  • snapshot boot - a technology uses software resume to boot up the system quickly.