1IRQBALANCE(1)                     irqbalance                     IRQBALANCE(1)
2
3
4

NAME

6       irqbalance - distribute hardware interrupts across processors on a mul‐
7       tiprocessor system
8

SYNOPSIS

10       irqbalance
11
12

DESCRIPTION

14       The purpose of irqbalance is to distribute hardware  interrupts  across
15       processors on a multiprocessor system in order to increase performance.
16
17

OPTIONS

19       -o, --oneshot
20              Causes irqbalance to be run once, after which the daemon exits.
21
22
23       -d, --debug
24              Causes  irqbalance  to  print  extra debug information.  Implies
25              --foreground.
26
27
28       -f, --foreground
29              Causes irqbalance to run in the foreground (without --debug).
30
31
32       -j, --journal
33              Enables log output optimized for systemd-journal.
34
35
36       -p, --powerthresh=<threshold>
37              Set the threshold at which we attempt to move a CPU into  power‐
38              save mode If more than <threshold> CPUs are more than 1 standard
39              deviation below the average CPU softirq workload,  and  no  CPUs
40              are  more  than 1 standard deviation above (and have more than 1
41              IRQ assigned to them), attempt to place 1 CPU in powersave mode.
42              In  powersave mode, a CPU will not have any IRQs balanced to it,
43              in an effort to prevent that CPU from waking up without need.
44
45
46       -i, --banirq=<irqnum>
47              Add the specified IRQ to the set of banned IRQs. irqbalance will
48              not affect the affinity of any IRQs on the banned list, allowing
49              them to be specified manually.  This option is addative and  can
50              be  specified  multiple times. For example to ban IRQs 43 and 44
51              from balancing,  use  the  following  command  line:  irqbalance
52              --banirq=43 --banirq=44
53
54
55       --deepestcache=<integer>
56              This  allows  a user to specify the cache level at which irqbal‐
57              ance partitions cache domains.  Specifying a  deeper  cache  may
58              allow  a  greater degree of flexibility for irqbalance to assign
59              IRQ affinity to achieve greater performance increases, but  set‐
60              ting a cache depth too large on some systems (specifically where
61              all CPUs on a system share the deepest cache level), will  cause
62              irqbalance  to see balancing as unnecessary.  irqbalance --deep‐
63              estcache=2
64
65       The default value for deepestcache is 2.
66
67
68       -l, --policyscript=<script>
69              When specified, the referenced script will execute once for each
70              discovered IRQ, with the sysfs device path and IRQ number passed
71              as arguments.  Note that the device path argument will point  to
72              the parent directory from which the IRQ attributes directory may
73              be directly  opened.   The  script  may  specify  zero  or  more
74              key=value  pairs that will guide irqbalance in the management of
75              that IRQ.  Key=value pairs are printed by the script  on  stdout
76              and  will be captured and interpreted by irqbalance.  Irqbalance
77              expects a zero exit code from the provided utility.   Recognized
78              key=value pairs are:
79
80       ban=[true | false]
81
82       Directs irqbalance to exclude the passed in IRQ from balancing.
83
84       balance_level=[none | package | cache | core]
85              This allows a user to override the balance level of a given IRQ.
86              By default the balance level is determined  automatically  based
87              on the pci device class of the device that owns the IRQ.
88
89       numa_node=<integer>
90              This  allows  a  user to override the NUMA node that sysfs indi‐
91              cates a given device IRQ is local to.  Often, systems  will  not
92              specify  this  information  in ACPI, and as a result devices are
93              considered equidistant from all NUMA nodes in  a  system.   This
94              option allows for that hardware provided information to be over‐
95              ridden, so that irqbalance  can  bias  IRQ  affinity  for  these
96              devices  toward  its most local node.  Note that specifying a -1
97              here forces irqbalance to consider an interrupt from a device to
98              be equidistant from all nodes.
99
100       -s, --pid=<file>
101              Have  irqbalance write its process id to the specified file.  By
102              default no pidfile is written.  The written pidfile is automati‐
103              cally  unlinked  when  irqbalance exits. It is ignored when used
104              with --debug or --foreground.
105
106       -t, --interval=<time>
107              Set the measurement time for irqbalance.  irqbalance will  sleep
108              for <time> seconds between samples of the irq load on the system
109              cpus. Defaults to 10.
110

ENVIRONMENT VARIABLES

112       IRQBALANCE_ONESHOT
113              Same as --oneshot.
114
115
116       IRQBALANCE_DEBUG
117              Same as --debug.
118
119
120       IRQBALANCE_BANNED_CPUS
121              Provides a mask of CPUs which irqbalance should ignore and never
122              assign interrupts to.
123
124

SIGNALS

126       SIGHUP Forces a rescan of the available IRQs and system topology.
127
128

API

130       irqbalance  is  able  to communicate via socket and return it's current
131       assignment tree and setup, as well as set new settings  based  on  sent
132       values. Socket is abstract, with a name in form of irqbalance<PID>.sock
133       , where <PID> is the process ID of irqbalance instance  to  communicate
134       with.  Possible values to send:
135
136       stats  Retrieve  assignment  tree of IRQs to CPUs, in recursive manner.
137              For each CPU node in tree, it's type, number, load  and  whether
138              the  save  mode  is active are sent. For each assigned IRQ type,
139              it's number, load, number of IRQs  since  last  rebalancing  and
140              it's  class  are  sent. Refer to types.h file for explanation of
141              defines.
142
143       setup  Get the current value of sleep interval, mask of banned CPUs and
144              and list of banned IRQs.
145
146       settings sleep <s>
147              Set new value of sleep interval, <s> >= 1.
148
149       settings cpus <cpu_number1> <cpu_number2> ...
150              Ban listed CPUs from IRQ handling, all old values of banned CPUs
151              are forgotten.
152
153       settings ban irqs <irq1> <irq2> ...
154              Ban listed IRQs from being balanced, all old  values  of  banned
155              IRQs are forgotten.
156
157       irqbalance  checks SCM_CREDENTIALS of sender (only root user is allowed
158       to interact).  Based on chosen tools, ancillary  message  with  creden‐
159       tials needs to be sent with request.
160
161

Homepage

163       https://github.com/Irqbalance/irqbalance
164
165
166
167
168Linux                              Dec 2006                      IRQBALANCE(1)
Impressum