1STALLD(8) System Manager's Manual STALLD(8)
2
3
4
6 stalld - detect starving threads and boost them
7
9 stalld [ -l ] [ -v ] [ -k ] [ -s ] [ -f ] [ -h ] [ -c cpu-list] [ -p
10 time-in-ns ] [ -r time-in-ns ] [ -d time-in-sec ] [ -t time-in-sec ] [
11 -i regexes-of-thread-names ] [ -I regexes-of-process-names ] [ -R per‐
12 centage ]
13
14
16 stalld is a system daemon that monitors thread for the starvation con‐
17 dition. Starvation occurs when a thread sits on a cpu run-queue for
18 longer than the starvation-threshold, meaning the thread has not been
19 allowed to run for threshold seconds. The thread is boosted using the
20 SCHED_DEADLINE policy and given a time period to run. Once it uses this
21 boost period, the thread is returned to its original scheduling policy.
22
23
25 -t|--starving_threshold
26 how long (in seconds) a thread must starve before being boosted
27 [60 s]
28
29 -p|--boost_period
30 SCHED_DEADLINE period in nanoseconds for a starving thread
31 [1000000000 ns]
32
33 -r|--boost_runtime
34 SCHED_DEADLINE runtime in nanoseconds for a starving thread
35 [20000 ns]
36
37 -d|--boost_duration
38 duration in seconds the starving thread will run [ 3 s]
39
40 -F|--force_fifo
41 force using SCHED_FIFO for boosting
42
43 -l|--log_only
44 only log information, do no boosting [false]
45
46 -v|--verbose
47 print action informtion to stdout [false]
48
49 -k|--log_kmsg
50 log information to the kernel buffer [false]
51
52 -s|--log_syslog
53 print information to syslog [true]
54
55 -f|--foreground
56 run in the foreground [false (true with -v)]
57
58 -P|--pidfile
59 write dameon pid to specified file [none]
60
61 -A|--aggressive_mode
62 dispatch one thread per cpu run-queue, even if thre are no
63 starving threads (uses more power). [false]
64
65 -O|--power_mode
66 run as a single threaded program, it consumes less CPU, at the
67 price of less precision/granularity. [false]
68
69 -M|--adaptive_mode
70 when a CPU shows threads starving for more than half of the
71 starving_threshold time, dispatch a specialized thread to moni‐
72 tor it. [false]
73
74 -g|--granularity
75 set the granularity (in seconds) at which stalld checks for
76 starving threads. The lower the value the more precise will be
77 the detection, at the price of consuming more CPU time. [5 sec‐
78 onds]
79
80 -R|--reservation
81 set the percentage of CPU time reserved for stalld via
82 SCHED_DEADLINE. In this way, stalld cannot starve due to high
83 priority threads, also avoid indirect starvation via priority
84 inversion. [not set]
85
86 -i|--ignore_threads
87 regexes (comma-separated) of thread names that must be ignored
88 from being boosted
89
90 -I|--ignore_processes
91 regexes (comma-separated) of process names that must be ignored
92 from being boosted
93
94 -h|--help
95 print options
96
98 /etc/systemd/stalld.conf
99 parameter file for systemd startup
100 /usr/lib/systemd/system/stalld.service
101 systemd unit file
102 /usr/bin/stalld stalld executable
104 none
106 Daniel Bristot de Oliveira (bristot@redhat.com) Juri Lelli
107 (juri.lelli@redhat.com)
108
109
110
111 STALLD(8)