Difference between revisions of "Boot Time"
(Legacy Content Conversion) |
(Changed heading tags to NOT use single equal signs as these are reserved for the page title.) |
||
Line 2: | Line 2: | ||
This is of interest to CE Linux Forum members, because customers expect CE products to be usable very soon after system startup. | This is of interest to CE Linux Forum members, because customers expect CE products to be usable very soon after system startup. | ||
− | = Technology/Project Pages = | + | == Technology/Project Pages == |
The following are individual pages with information about various technologies relevant to improving bootup time for Linux. Some of these describe local patches available on this site. Others point to projects or patches maintained elsewhere. | The following are individual pages with information about various technologies relevant to improving bootup 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 == | + | === Measuring Boot-up Time === |
*[[Printk Times]] - simple system for showing timing information for each printk. | *[[Printk Times]] - simple system for showing timing information for each printk. | ||
*[[Kernel Function Trace]] - system for reporting function timings in the kernel. | *[[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. | *[[Linux Trace Toolkit]] - system for reporting timing data for certain kernel and process events. | ||
− | == Technologies and Techniques for Reducing Boot-up Time == | + | === Technologies and Techniques for Reducing Boot-up Time === |
*[[Disable Console]] - Avoid overhead of console output during system startup. | *[[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. | *[[RTC No Sync]] - Avoid delay to synchronize system time with RTC clock edge on startup. | ||
Line 27: | Line 27: | ||
#control over page mapping characteristics. | #control over page mapping characteristics. | ||
− | = Information = | + | == Information == |
*[[Boot-up Time Definition Of Terms]] - definitions of terms used by the CELF Bootup Time working group | *[[Boot-up Time Definition Of Terms]] - definitions of terms used by the CELF Bootup Time working group | ||
*[[Kernel Instrumentation]] - lists some known kernel instrumentation tools. These are of interest for measuring kernel startup time. | *[[Kernel Instrumentation]] - lists some known kernel instrumentation tools. These are of interest for measuring kernel startup time. | ||
Line 34: | Line 34: | ||
*[[Image:alert.gif]]''no content yet'' - [[Boot-up Time Delay Taxonomy]] - list of delays categorized by boot phase, type and magnitude | *[[Image:alert.gif]]''no content yet'' - [[Boot-up Time Delay Taxonomy]] - list of delays categorized by boot phase, type and magnitude | ||
− | == Case Studies == | + | === Case Studies === |
*Samsung proof-of-acceptability study for digital still camera: see attachment:[[Linux Boot-up Time Reduction]]4DSC.ppt | *Samsung proof-of-acceptability study for digital still camera: see attachment:[[Linux Boot-up Time Reduction]]4DSC.ppt | ||
*Tim Bird's (Sony) survey of boot-up time reduction techniques: | *Tim Bird's (Sony) survey of boot-up time reduction techniques: | ||
Line 40: | Line 40: | ||
**[attachment:[[Reducing Startup Time]]_v0.8.pdf Reducing Startup Time in Embedded Linux Systems] - Presentation describing some existing boot-up time reduction techniques and strategies. | **[attachment:[[Reducing Startup Time]]_v0.8.pdf Reducing Startup Time in Embedded Linux Systems] - Presentation describing some existing boot-up time reduction techniques and strategies. | ||
− | = Additional Projects/Mailing Lists/Resources = | + | == Additional Projects/Mailing Lists/Resources == |
− | == Kexec == | + | === 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: http://developer.osdl.org/andyp/kexec/whitepaper/kexec.pdf | *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: http://developer.osdl.org/andyp/kexec/whitepaper/kexec.pdf | ||
**2004 Kernel Summit presentation: http://www.xenotime.net/linux/fastboot/fastboot-ks-2004.pdf | **2004 Kernel Summit presentation: http://www.xenotime.net/linux/fastboot/fastboot-ks-2004.pdf | ||
Line 47: | Line 47: | ||
http://www-106.ibm.com/developerworks/linux/library/l-kexec.html?ca=dgr-lnxw04[[Reboot Fast]] | http://www-106.ibm.com/developerworks/linux/library/l-kexec.html?ca=dgr-lnxw04[[Reboot Fast]] | ||
− | == Others == | + | === Others === |
*http://www.bootsplash.org/ - technology to put up a splash screen early in boot sequence | *http://www.bootsplash.org/ - technology to put up a splash screen early in boot sequence | ||
*http://dev.gentoo.org/~spock/projects/gensplash/ - newer technology to put a splash screen early in the boot sequence | *http://dev.gentoo.org/~spock/projects/gensplash/ - newer technology to put a splash screen early in the boot sequence |
Revision as of 14:06, 20 November 2006
This page has information about reducing boot-up time for a Linux system. This is of interest to CE Linux Forum members, because customers expect CE products to be usable very soon after system startup.
Contents
Technology/Project Pages
The following are individual pages with information about various technologies relevant to improving bootup 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.
Technologies and Techniques for Reducing Boot-up Time
- 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).
- Kernel XIP - Allow kernel to be executed in-place in ROM or FLASH.
- 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.
- Application XIP - Allow programs and libraries to be executed in-place in ROM or FLASH
- Pre Linking - Avoid cost of runtime linking on first program load
- Optimize RC Scripts - Reduce overhead of running RC scripts
- DMA Copy Of Kernel On Startup - Copy kernel from Flash to RAM using DMA
- Parallel RC Scripts - Run RC scripts in parallel instead of sequentially
- Application Init Optimizations - Improvements in program load and init time via:
- use of mmap vs. read
- control over page mapping characteristics.
Information
- Boot-up Time Definition Of Terms - definitions of terms used by the CELF Bootup Time working group
- Kernel Instrumentation - lists some known kernel instrumentation tools. These are of interest for measuring kernel startup time.
- Filesystem Information - information about boot-up times with various file systems
in progress - Boot-up Time Reduction Howto - this is a project to catalog existing boot-up time reduction techniques. Work on this project is under way. The wiki will serve as the primary repository of information gathered for this project.
no content yet - Boot-up Time Delay Taxonomy - list of delays categorized by boot phase, type and magnitude
Case Studies
- Samsung proof-of-acceptability study for digital still camera: see attachment:Linux Boot-up Time Reduction4DSC.ppt
- Tim Bird's (Sony) survey of boot-up time reduction techniques:
- Methods to Improve Boot-up Time in Linux - Paper prepared for 2004 Ottawa Linux Symposium
- [attachment:Reducing Startup Time_v0.8.pdf Reducing Startup Time in Embedded Linux Systems] - Presentation describing some existing boot-up time reduction techniques and strategies.
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: http://developer.osdl.org/andyp/kexec/whitepaper/kexec.pdf
- 2004 Kernel Summit presentation: http://www.xenotime.net/linux/fastboot/fastboot-ks-2004.pdf
- here's another Kexec white paper:
http://www-106.ibm.com/developerworks/linux/library/l-kexec.html?ca=dgr-lnxw04Reboot Fast
Others
- http://www.bootsplash.org/ - technology to put up a splash screen early in boot sequence
- http://dev.gentoo.org/~spock/projects/gensplash/ - newer technology to put a splash screen early in the boot sequence
- see the HOWTO at: http://gentoo-wiki.com/HOWTO_fbsplash
- http://www.linuxdevices.com/news/NS5907201615.html - press release by FSMLabs about fast booting of their product. Is any of this published?
- Boot Chart - http://www.bootchart.org/ - Bootchart is 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.