Lines Matching +full:wait +full:- +full:delay
1 .. SPDX-License-Identifier: GPL-2.0
3 Delay and sleep mechanisms
7 RightWay (TM) to insert a delay?"
17 .. list-table::
19 :header-rows: 2
21 * -
22 - `*delay()`
23 - `usleep_range*()`
24 - `*sleep()`
25 - `fsleep()`
26 * -
27 - busy-wait loop
28 - hrtimers based
29 - timer list timers based
30 - combines the others
31 * - Usage in atomic Context
32 - yes
33 - no
34 - no
35 - no
36 * - precise on "short intervals"
37 - yes
38 - yes
39 - depends
40 - yes
41 * - precise on "long intervals"
42 - Do not use!
43 - yes
44 - max 12.5% slack
45 - yes
46 * - interruptible variant
47 - no
48 - yes
49 - yes
50 - no
58 #. Use `*delay()` for very, very short delays
63 `*delay()` family of functions
64 ------------------------------
66 These functions use the jiffy estimation of clock speed and will busy wait for
67 enough loop cycles to achieve the desired delay. udelay() is the basic
70 These functions are mainly used to add a delay in atomic context. Please make
71 sure to ask yourself before adding a delay in atomic context: Is this really
74 .. kernel-doc:: include/asm-generic/delay.h
77 .. kernel-doc:: include/linux/delay.h
82 ----------------------------------------------------
88 #. hrtimers are more expensive as they are using an rb-tree (instead of hashing)
107 .. kernel-doc:: include/linux/delay.h
110 .. kernel-doc:: kernel/time/sleep_timeout.c
117 .. kernel-doc:: kernel/time/sleep_timeout.c
120 .. kernel-doc:: include/linux/delay.h