Difference between revisions of "Asynchronous function calls"

From eLinux.org
Jump to: navigation, search
(create page describing async functions)
 
(References: add mainline info)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In order to make the kernel boot faster, a set of patches were introduced by
+
In order to make the kernel boot faster, a set of patches was introduced by
 
Arjan van de Ven in January 2009  
 
Arjan van de Ven in January 2009  
 
to create infrastructure to allow doing some of the initialization steps
 
to create infrastructure to allow doing some of the initialization steps
asynchronously, which will hide significant portions of the hardware delays
+
asynchronously.  The patches allow overlapping significant portions of the hardware delays
in practice.
+
in practice. Asynchronous function calls has been merged in mainline starting from 2.6.29. Starting from 2.6.30 the asynchronous function call infrastructure is enabled by default.  
  
 
In order to not change device order and other similar observables, the
 
In order to not change device order and other similar observables, the
Line 13: Line 13:
  
 
== References ==
 
== References ==
 +
This work was described in the LWN.net article [http://lwn.net/Articles/314808/ An asynchronous function call infrastructure]
 +
 
See http://lkml.org/lkml/2009/1/4/155 for the first patch in the series.
 
See http://lkml.org/lkml/2009/1/4/155 for the first patch in the series.
  
Line 19: Line 21:
  
 
See [[Threaded Device Probing]]
 
See [[Threaded Device Probing]]
 +
 +
== Status ==
 +
This work was mainlined in kernel version 2.6.30
 +
and is now found in the source file <tt>kernel/async.c</tt>
 +
[[Category:Boot Time]]
 +
[[Category:Kernel]]

Latest revision as of 22:09, 1 September 2010

In order to make the kernel boot faster, a set of patches was introduced by Arjan van de Ven in January 2009 to create infrastructure to allow doing some of the initialization steps asynchronously. The patches allow overlapping significant portions of the hardware delays in practice. Asynchronous function calls has been merged in mainline starting from 2.6.29. Starting from 2.6.30 the asynchronous function call infrastructure is enabled by default.

In order to not change device order and other similar observables, the patch does NOT do full parallel initialization.

Rather, it operates more in the way an out of order CPU does; the work may be done out of order and asynchronous, but the observable effects (instruction retiring for the CPU) are still done in the original sequence.

References

This work was described in the LWN.net article An asynchronous function call infrastructure

See http://lkml.org/lkml/2009/1/4/155 for the first patch in the series.

Work similar in spirit to this was done previously, but with smaller scope and apparently not mainlined.

See Threaded Device Probing

Status

This work was mainlined in kernel version 2.6.30 and is now found in the source file kernel/async.c