|
Packit Service |
2212bb |
.de Sh \" Subsection
|
|
Packit Service |
2212bb |
.br
|
|
Packit Service |
2212bb |
.if t .Sp
|
|
Packit Service |
2212bb |
.ne 5
|
|
Packit Service |
2212bb |
.PP
|
|
Packit Service |
2212bb |
\fB\\$1\fR
|
|
Packit Service |
2212bb |
.PP
|
|
Packit Service |
2212bb |
..
|
|
Packit Service |
2212bb |
.de Sp \" Vertical space (when we can't use .PP)
|
|
Packit Service |
2212bb |
.if t .sp .5v
|
|
Packit Service |
2212bb |
.if n .sp
|
|
Packit Service |
2212bb |
..
|
|
Packit Service |
2212bb |
.de Ip \" List item
|
|
Packit Service |
2212bb |
.br
|
|
Packit Service |
2212bb |
.ie \\n(.$>=3 .ne \\$3
|
|
Packit Service |
2212bb |
.el .ne 3
|
|
Packit Service |
2212bb |
.IP "\\$1" \\$2
|
|
Packit Service |
2212bb |
..
|
|
Packit Service |
2212bb |
.TH "IRQBALANCE" 1 "Dec 2006" "Linux" "irqbalance"
|
|
Packit Service |
2212bb |
.SH NAME
|
|
Packit Service |
2212bb |
irqbalance \- distribute hardware interrupts across processors on a multiprocessor system
|
|
Packit Service |
2212bb |
.SH "SYNOPSIS"
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.nf
|
|
Packit Service |
2212bb |
\fBirqbalance\fR
|
|
Packit Service |
2212bb |
.fi
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.SH "DESCRIPTION"
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.PP
|
|
Packit Service |
2212bb |
The purpose of \fBirqbalance\fR is to distribute hardware interrupts across
|
|
Packit Service |
2212bb |
processors on a multiprocessor system in order to increase performance\&.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.SH "OPTIONS"
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -o, --oneshot
|
|
Packit Service |
2212bb |
Causes irqbalance to be run once, after which the daemon exits.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.B -d, --debug
|
|
Packit Service |
2212bb |
Causes irqbalance to print extra debug information. Implies --foreground.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -f, --foreground
|
|
Packit Service |
2212bb |
Causes irqbalance to run in the foreground (without --debug).
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -j, --journal
|
|
Packit Service |
2212bb |
Enables log output optimized for systemd-journal.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -p, --powerthresh=<threshold>
|
|
Packit Service |
2212bb |
Set the threshold at which we attempt to move a CPU into powersave mode
|
|
Packit Service |
2212bb |
If more than <threshold> CPUs are more than 1 standard deviation below the
|
|
Packit Service |
2212bb |
average CPU softirq workload, and no CPUs are more than 1 standard deviation
|
|
Packit Service |
2212bb |
above (and have more than 1 IRQ assigned to them), attempt to place 1 CPU in
|
|
Packit Service |
2212bb |
powersave mode. In powersave mode, a CPU will not have any IRQs balanced to it,
|
|
Packit Service |
2212bb |
in an effort to prevent that CPU from waking up without need.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -i, --banirq=<irqnum>
|
|
Packit Service |
2212bb |
Add the specified IRQ to the set of banned IRQs. irqbalance will not affect
|
|
Packit Service |
2212bb |
the affinity of any IRQs on the banned list, allowing them to be specified
|
|
Packit Service |
adcb48 |
manually. This option is addative and can be specified multiple times. For
|
|
Packit Service |
2212bb |
example to ban IRQs 43 and 44 from balancing, use the following command line:
|
|
Packit Service |
2212bb |
.B irqbalance --banirq=43 --banirq=44
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
adcb48 |
.B --deepestcache=<integer>
|
|
Packit Service |
2212bb |
This allows a user to specify the cache level at which irqbalance partitions
|
|
Packit Service |
2212bb |
cache domains. Specifying a deeper cache may allow a greater degree of
|
|
Packit Service |
2212bb |
flexibility for irqbalance to assign IRQ affinity to achieve greater performance
|
|
Packit Service |
2212bb |
increases, but setting a cache depth too large on some systems (specifically
|
|
Packit Service |
2212bb |
where all CPUs on a system share the deepest cache level), will cause irqbalance
|
|
Packit Service |
2212bb |
to see balancing as unnecessary.
|
|
Packit Service |
2212bb |
.B irqbalance --deepestcache=2
|
|
Packit Service |
2212bb |
.P
|
|
Packit Service |
2212bb |
The default value for deepestcache is 2.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -l, --policyscript=<script>
|
|
Packit Service |
2212bb |
When specified, the referenced script will execute once for each discovered IRQ,
|
|
Packit Service |
2212bb |
with the sysfs device path and IRQ number passed as arguments. Note that the
|
|
Packit Service |
2212bb |
device path argument will point to the parent directory from which the IRQ
|
|
Packit Service |
2212bb |
attributes directory may be directly opened.
|
|
Packit Service |
2212bb |
The script may specify zero or more key=value pairs that will guide irqbalance in
|
|
Packit Service |
2212bb |
the management of that IRQ. Key=value pairs are printed by the script on stdout
|
|
Packit Service |
2212bb |
and will be captured and interpreted by irqbalance. Irqbalance expects a zero
|
|
Packit Service |
2212bb |
exit code from the provided utility. Recognized key=value pairs are:
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.I ban=[true | false]
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
Directs irqbalance to exclude the passed in IRQ from balancing.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.I balance_level=[none | package | cache | core]
|
|
Packit Service |
2212bb |
This allows a user to override the balance level of a given IRQ. By default the
|
|
Packit Service |
2212bb |
balance level is determined automatically based on the pci device class of the
|
|
Packit Service |
2212bb |
device that owns the IRQ.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.I numa_node=<integer>
|
|
Packit Service |
2212bb |
This allows a user to override the NUMA node that sysfs indicates a given device
|
|
Packit Service |
2212bb |
IRQ is local to. Often, systems will not specify this information in ACPI, and as a
|
|
Packit Service |
2212bb |
result devices are considered equidistant from all NUMA nodes in a system.
|
|
Packit Service |
2212bb |
This option allows for that hardware provided information to be overridden, so
|
|
Packit Service |
2212bb |
that irqbalance can bias IRQ affinity for these devices toward its most local
|
|
Packit Service |
2212bb |
node. Note that specifying a -1 here forces irqbalance to consider an interrupt
|
|
Packit Service |
2212bb |
from a device to be equidistant from all nodes.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -s, --pid=<file>
|
|
Packit Service |
2212bb |
Have irqbalance write its process id to the specified file. By default no
|
|
Packit Service |
2212bb |
pidfile is written. The written pidfile is automatically unlinked when
|
|
Packit Service |
2212bb |
irqbalance exits. It is ignored when used with --debug or --foreground.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B -t, --interval=<time>
|
|
Packit Service |
2212bb |
Set the measurement time for irqbalance. irqbalance will sleep for <time>
|
|
Packit Service |
2212bb |
seconds between samples of the irq load on the system cpus. Defaults to 10.
|
|
Packit Service |
2212bb |
.SH "ENVIRONMENT VARIABLES"
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B IRQBALANCE_ONESHOT
|
|
Packit Service |
2212bb |
Same as --oneshot.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B IRQBALANCE_DEBUG
|
|
Packit Service |
2212bb |
Same as --debug.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B IRQBALANCE_BANNED_CPUS
|
|
Packit Service |
2212bb |
Provides a mask of CPUs which irqbalance should ignore and never assign interrupts to.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.SH "SIGNALS"
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B SIGHUP
|
|
Packit Service |
2212bb |
Forces a rescan of the available IRQs and system topology.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.SH "API"
|
|
Packit Service |
2212bb |
irqbalance is able to communicate via socket and return it's current assignment
|
|
Packit Service |
2212bb |
tree and setup, as well as set new settings based on sent values. Socket is abstract,
|
|
Packit Service |
2212bb |
with a name in form of
|
|
Packit Service |
2212bb |
.B irqbalance<PID>.sock
|
|
Packit Service |
2212bb |
, where <PID> is the process ID of irqbalance instance to communicate with.
|
|
Packit Service |
2212bb |
Possible values to send:
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B stats
|
|
Packit Service |
2212bb |
Retrieve assignment tree of IRQs to CPUs, in recursive manner. For each CPU node
|
|
Packit Service |
2212bb |
in tree, it's type, number, load and whether the save mode is active are sent. For
|
|
Packit Service |
2212bb |
each assigned IRQ type, it's number, load, number of IRQs since last rebalancing
|
|
Packit Service |
2212bb |
and it's class are sent. Refer to types.h file for explanation of defines.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B setup
|
|
Packit Service |
adcb48 |
Get the current value of sleep interval, mask of banned CPUs and and list of banned IRQs.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B settings sleep <s>
|
|
Packit Service |
2212bb |
Set new value of sleep interval, <s> >= 1.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B settings cpus <cpu_number1> <cpu_number2> ...
|
|
Packit Service |
2212bb |
Ban listed CPUs from IRQ handling, all old values of banned CPUs are forgotten.
|
|
Packit Service |
2212bb |
.TP
|
|
Packit Service |
2212bb |
.B settings ban irqs <irq1> <irq2> ...
|
|
Packit Service |
2212bb |
Ban listed IRQs from being balanced, all old values of banned IRQs are forgotten.
|
|
Packit Service |
2212bb |
.PP
|
|
Packit Service |
2212bb |
irqbalance checks SCM_CREDENTIALS of sender (only root user is allowed to interact).
|
|
Packit Service |
2212bb |
Based on chosen tools, ancillary message with credentials needs to be sent with request.
|
|
Packit Service |
2212bb |
|
|
Packit Service |
2212bb |
.SH "Homepage"
|
|
Packit Service |
2212bb |
https://github.com/Irqbalance/irqbalance
|
|
Packit Service |
2212bb |
|