1STALLD(8)                   System Manager's Manual                  STALLD(8)
2
3
4

NAME

6       stalld - detect starving threads and boost them
7

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

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

FILES

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

BUGS

104       none

AUTHOR

106       Daniel   Bristot   de   Oliveira   (bristot@redhat.com)   Juri    Lelli
107       (juri.lelli@redhat.com)
108
109
110
111                                                                     STALLD(8)
Impressum