Bug 105398

Summary: Boot Linux faster by starting services in parallel
Product: [Retired] Red Hat Linux Reporter: Thomas Frayne <tomf>
Component: initscriptsAssignee: Bill Nottingham <notting>
Status: CLOSED DUPLICATE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 9CC: rvokal
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://www-106.ibm.com/developerworks/linux/library/l-boot.html
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-02-21 18:58:44 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Thomas Frayne 2003-09-25 18:48:17 UTC
Description of problem:
Linux system initialization is sometimes slow because services are started in a
fixed order, waiting for one to complete before starting the next.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Reboot
2.
3.
    
Actual results:
Slow

Expected results:
Fast

Additional info:

Please implement the idea in the referenced web page to allow services to be
started in parallel when all services they depend on are running.  The idea is
to use the dependencies facilities in the Make tool to determine what services
have to wait for what other services.

Also allow most services with dependencies to start in parallel by enhancing
them to mark themselves running as soon as possible, and to check if a service
about to be used is running before calling it.  Error recovery would involve
timed waits, logging, and possibly user interaction, but the result would allow
the user to log on and start applications while little used services are
starting as low priority background tasks.  

When one of these enhanced services is called in the foreground before its
startup is complete, it should raise the priority of its background task and any
other service starter its own starter is currently waiting for.  This would
eliminate the problem seen in Windows XP, which allows the user to log on before
system initialization is complete, but makes the user wait for completion of
almost all initialization before any applications can be launched.

Note that it would be easy to implement this piecemeal.  Just implement the
original Make so that all services previous to a given service in the current
init order would be listed as dependencies of the given service.  When previous
services are known not to be required for the given service, just remove them
from the list.  When a service is enhanced as above, all its dependencies can be
removed from the list.  Thus, the implementation of the enhancements of the
services can be done in parallel, possibly even to the point of updating an
entry on the Make list during installation.

Comment 1 Bill Nottingham 2003-09-25 18:53:14 UTC

*** This bug has been marked as a duplicate of 104706 ***

Comment 2 Red Hat Bugzilla 2006-02-21 18:58:44 UTC
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.