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 distribute hardware interrupts across pro‐
15       cessors 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       -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

ENVIRONMENT VARIABLES

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

SIGNALS

144       SIGHUP Forces a rescan of the available irqs and system topology
145
146

Homepage

148       https://github.com/Irqbalance/irqbalance
149
150
151
152
153
154Linux                              Dec 2006                      IRQBALANCE(1)
Impressum