NAME¶
irqbalance - distribute hardware interrupts across processors on a
multiprocessor system
SYNOPSIS¶
irqbalance
DESCRIPTION¶
The purpose of
irqbalance is distribute hardware interrupts across
processors on a multiprocessor system in order to increase performance.
OPTIONS¶
- --oneshot
- Causes irqbalance to be run once, after which the daemon
exits
-
--debug
- Causes irqbalance to print extra debug information. Implies
--foreground
- --foreground
- Causes irqbalance to run in the foreground (without
--debug)
- --hintpolicy=[exact | subset | ignore]
- Set the policy for how irq kernel affinity hinting is
treated. Can be one of:
exact irq affinity hint is applied unilaterally and never violated
subset irq is balanced, but the assigned object will be a subset of the
affintiy hint
ignore irq affinity hint value is completely ignored
- --powerthresh=<threshold>
- Set the threshold at which we attempt to move a cpu into
powersave mode If more than <threshold> cpus are more than 1
standard deviation below the average cpu softirq workload, and no cpus are
more than 1 standard deviation above (and have more than 1 irq assigned to
them), attempt to place 1 cpu in powersave mode. In powersave mode, a cpu
will not have any irqs balanced to it, in an effort to prevent that cpu
from waking up without need.
- --banirq=<irqnum>
- Add the specified irq to the set of banned irqs. irqbalance
will not affect the affinity of any irqs on the banned list, allowing them
to be specified manually. This option is addative and can be specified
multiple times. For example to ban irqs 43 and 44 from balancing, use the
following command line: irqbalance --banirq=43 --banirq=44
- --policyscript=<script>
- When specified, the referenced script will execute once for
each discovered irq, with the sysfs device path and irq number passed as
arguments. The script may specify zero or more key=value pairs that will
guide irqbalance in the management of that irq. Key=value pairs are
printed by the script on stdout and will be captured and interpreted by
irqbalance. Irqbalance expects a zero exit code from the provided utility.
Recognized key=value pairs are:
- ban=[true | false]
- Directs irqbalance to exclude the passed in irq from
balancing
- balance_level=[none | package | cache | core]
- This allows a user to override the balance level of a given
irq. By default the balance level is determined automatically based on the
pci device class of the device that owns the irq.
- numa_node=<integer>
- This allows a user to override the numa node that sysfs
indicates a given device irq is local to. Often, systems will not specify
this information in ACPI, and as a result devicesa are considered
equidistant from all numa nodes in a system. This option allows for that
hardware provided information to be overridden, so that irqbalance can
bias irq affinity for these devices toward its most local node. Note that
specifying a -1 here forces irqbalance to consider an interrupt from a
device to be equidistant from all nodes.
- --pid=<file>
- Have irqbalance write its process id to the specified file.
By default no pidfile is written. The written pidfile is automatically
unlinked when irqbalance exits.
ENVIRONMENT VARIABLES¶
- IRQBALANCE_ONESHOT
- Same as --oneshot
- IRQBALANCE_DEBUG
- Same as --debug
- IRQBALANCE_BANNED_CPUS
- Provides a mask of cpus which irqbalance should ignore and
never assign interrupts to
SIGNALS¶
- SIGHUP
- Forces a rescan of the available irqs and system topology
Homepage¶
http://code.google.com/p/irqbalance