Its been requested in several different ways, that irqbalance have a more robust mechanism for setting balancing policy at run time. While I don't feel its apropriate to have irqbalance be able to implement arbitrary balance policy (having a flexible mechanism to define which irqs should be placed where can become exceedingly complex), I do think we need some mechanism that easily allows users to dynamically exclude irqs from the irqbalance policy at run time. The banscript option does exactly this. It allows the user to point irqbalance toward an exacutable file that is run one for each irq deiscovered passing the sysfs path of the device and an irq vector as arguments. A zero exit code tells irqbalance to manage the irq as it normally would, while a non-zero exit tells irqbalance to ignore the interrupt entirely. This provides adminstrators a code point with which to exclude irqs dynamically based on any programatic informatino available, and to manage those irqs independently, etither via another irqbalance like program, or via static affinity setting. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Reesolves: http://code.google.com/p/irqbalance/issues/detail?id=33
110 lines
3 KiB
Groff
110 lines
3 KiB
Groff
.\"Generated by db2man.xsl. Don't modify this, modify the source.
|
|
.de Sh \" Subsection
|
|
.br
|
|
.if t .Sp
|
|
.ne 5
|
|
.PP
|
|
\fB\\$1\fR
|
|
.PP
|
|
..
|
|
.de Sp \" Vertical space (when we can't use .PP)
|
|
.if t .sp .5v
|
|
.if n .sp
|
|
..
|
|
.de Ip \" List item
|
|
.br
|
|
.ie \\n(.$>=3 .ne \\$3
|
|
.el .ne 3
|
|
.IP "\\$1" \\$2
|
|
..
|
|
.TH "IRQBALANCE" 1 "Dec 2006" "Linux" "irqbalance"
|
|
.SH NAME
|
|
irqbalance \- distribute hardware interrupts across processors on a multiprocessor system
|
|
.SH "SYNOPSIS"
|
|
|
|
.nf
|
|
\fBirqbalance\fR
|
|
.fi
|
|
|
|
.SH "DESCRIPTION"
|
|
|
|
.PP
|
|
The purpose of \fBirqbalance\fR is distribute hardware interrupts across processors on a multiprocessor system in order to increase performance\&.
|
|
|
|
.SH "OPTIONS"
|
|
|
|
.TP
|
|
.B --oneshot
|
|
Causes irqbalance to be run once, after which the daemon exits
|
|
.TP
|
|
|
|
.B --debug
|
|
Causes irqbalance to print extra debug information. Implies --foreground
|
|
|
|
.TP
|
|
.B --foreground
|
|
Causes irqbalance to run in the foreground (without --debug)
|
|
|
|
.TP
|
|
.B --hintpolicy=[exact | subset | ignore]
|
|
Set the policy for how irq kernel affinity hinting is treated. Can be one of:
|
|
.P
|
|
.I exact
|
|
irq affinity hint is applied unilaterally and never violated
|
|
.P
|
|
.I subset
|
|
irq is balanced, but the assigned object will be a subset of the affintiy hint
|
|
.P
|
|
.I ignore
|
|
irq affinity hint value is completely ignored
|
|
|
|
.TP
|
|
.B --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.
|
|
|
|
.TP
|
|
.B --banirq=<irqnum>
|
|
Add the specified irq list 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
|
|
|
|
.TP
|
|
.B --banscript=<script>
|
|
Execute the specified script for each irq that is discovered, passing the sysfs
|
|
path to the associated device as the first argument, and the irq vector as the
|
|
second. An exit value of 0 tells irqbalance that this interrupt should balanced
|
|
and managed as a normal irq, while a non-zero exit code indicates this irq
|
|
should be ignored by irqbalance completely (see --banirq above). Use of this
|
|
script provides users the ability to dynamically select which irqs get exluded
|
|
from balancing, and provides an opportunity for manual affinity setting in one
|
|
single code point.
|
|
|
|
.TP
|
|
.B --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.
|
|
|
|
.SH "ENVIRONMENT VARIABLES"
|
|
.TP
|
|
.B IRQBALANCE_ONESHOT
|
|
Same as --oneshot
|
|
|
|
.TP
|
|
.B IRQBALANCE_DEBUG
|
|
Same as --debug
|
|
|
|
.TP
|
|
.B IRQBALANCE_BANNED_CPUS
|
|
Provides a mask of cpus which irqbalance should ignore and never assign interrupts to
|
|
|
|
.SH "Homepage"
|
|
http://code.google.com/p/irqbalance
|
|
|
|
|