Blame irqbalance.1

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