1IRQBALANCE(1) irqbalance IRQBALANCE(1)
2
3
4
6 irqbalance - distribute hardware interrupts across processors on a mul‐
7 tiprocessor system
8
10 irqbalance
11
12
14 The purpose of irqbalance is distribute hardware interrupts across pro‐
15 cessors on a multiprocessor system in order to increase performance.
16
17
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 -h, --hintpolicy=[exact | subset | ignore]
33 Set the policy for how irq kernel affinity hinting is treated.
34 Can be one of:
35
36 exact irq affinity hint is applied unilaterally and never violated
37
38 subset irq is balanced, but the assigned object will be a subset of the
39 affintiy hint
40
41 ignore irq affinity hint value is completely ignored
42
43 The default value for hintpolicy is ignore
44
45
46 -p, --powerthresh=<threshold>
47 Set the threshold at which we attempt to move a cpu into power‐
48 save mode If more than <threshold> cpus are more than 1 standard
49 deviation below the average cpu softirq workload, and no cpus
50 are more than 1 standard deviation above (and have more than 1
51 irq assigned to them), attempt to place 1 cpu in powersave mode.
52 In powersave mode, a cpu will not have any irqs balanced to it,
53 in an effort to prevent that cpu from waking up without need.
54
55
56 -i, --banirq=<irqnum>
57 Add the specified irq to the set of banned irqs. irqbalance will
58 not affect the affinity of any irqs on the banned list, allowing
59 them to be specified manually. This option is addative and can
60 be specified multiple times. For example to ban irqs 43 and 44
61 from balancing, use the following command line: irqbalance
62 --banirq=43 --banirq=44
63
64
65 --deepestcache=<integer>
66 This allows a user to specify the cache level at which irqbal‐
67 ance partitions cache domains. Specifying a deeper cache may
68 allow a greater degree of flexibility for irqbalance to assign
69 irq affinity to achieve greater performance increases, but set‐
70 ting a cache depth too large on some systems (specifically where
71 all cpus on a system share the deepest cache lavel), will cause
72 irqbalance to see balancing as unnesessecary. irqbalance
73 --deepestcache=2
74
75 The default value for deepestcache is 2.
76
77
78 -b, --banscript=<script>
79 Execute the specified script for each irq that is discovered,
80 passing the sysfs path to the associated device as the first
81 argument, and the irq vector as the second. An exit value of 0
82 tells irqbalance that this interrupt should balanced and managed
83 as a normal irq, while a non-zero exit code indicates this irq
84 should be ignored by irqbalance completely (see --banirq above).
85 Use of this script provides users the ability to dynamically
86 select which irqs get exluded from balancing, and provides an
87 opportunity for manual affinity setting in one single code
88 point.
89
90
91 -l, --policyscript=<script>
92 When specified, the referenced script will execute once for each
93 discovered irq, with the sysfs device path and irq number passed
94 as arguments. Note that the device path argument will point to
95 the parent directory from which the irq attributes directory may
96 be directly opened. The script may specify zero or more
97 key=value pairs that will guide irqbalance in the management of
98 that irq. Key=value pairs are printed by the script on stdout
99 and will be captured and interpreted by irqbalance. Irqbalance
100 expects a zero exit code from the provided utility. Recognized
101 key=value pairs are:
102
103 ban=[true | false]
104 Directs irqbalance to exclude the passed in irq from balancing
105
106 balance_level=[none | package | cache | core]
107 This allows a user to override the balance level of a given irq.
108 By default the balance level is determined automatically based
109 on the pci device class of the device that owns the irq.
110
111 numa_node=<integer>
112 This allows a user to override the numa node that sysfs indi‐
113 cates a given device irq is local to. Often, systems will not
114 specify this information in ACPI, and as a result devicesa are
115 considered equidistant from all numa nodes in a system. This
116 option allows for that hardware provided information to be over‐
117 ridden, so that irqbalance can bias irq affinity for these
118 devices toward its most local node. Note that specifying a -1
119 here forces irqbalance to consider an interrupt from a device to
120 be equidistant from all nodes.
121
122 -s, --pid=<file>
123 Have irqbalance write its process id to the specified file. By
124 default no pidfile is written. The written pidfile is automati‐
125 cally unlinked when irqbalance exits. It is ignored when used
126 with --debug or --foreground.
127
128
130 IRQBALANCE_ONESHOT
131 Same as --oneshot
132
133
134 IRQBALANCE_DEBUG
135 Same as --debug
136
137
138 IRQBALANCE_BANNED_CPUS
139 Provides a mask of cpus which irqbalance should ignore and never
140 assign interrupts to
141
142
144 SIGHUP Forces a rescan of the available irqs and system topology
145
146
148 https://github.com/Irqbalance/irqbalance
149
150
151
152
153
154Linux Dec 2006 IRQBALANCE(1)