b3f95beb62
https://github.com/Irqbalance/irqbalance/issues/159 recently brought to our attention that online cpu status isn't functional on all arches. Specifically on parisc, the availability of /sys/devices/system/cpu/cpu<N>/online is in question. The implication here is that its not feasible to accurately determine cpu count, and as a result, irqbalance doesn't work on that arch Fix it by changing our online detection strategy. The file /sys/devices/system/cpu/online is a cpulist format file that seems to be present accross all arches and configs. As such, we can use this file to determine online status per cpu reliably. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> |
||
---|---|---|
misc | ||
tests | ||
ui | ||
.gitignore | ||
.travis.yml | ||
activate.c | ||
AUTHORS | ||
autogen.sh | ||
bitmap.c | ||
bitmap.h | ||
classify.c | ||
configure.ac | ||
constants.h | ||
COPYING | ||
cpumask.h | ||
cputree.c | ||
irqbalance-ui.1 | ||
irqbalance.1 | ||
irqbalance.c | ||
irqbalance.h | ||
irqlist.c | ||
Makefile.am | ||
non-atomic.h | ||
numa.c | ||
placement.c | ||
procinterrupts.c | ||
README.md | ||
types.h |
What is Irqbalance
Irqbalance is a daemon to help balance the cpu load generated by interrupts across all of a systems cpus. Irqbalance identifies the highest volume interrupt sources, and isolates each of them to a single unique cpu, so that load is spread as much as possible over an entire processor set, while minimizing cache miss rates for irq handlers.
Building and Installing
./autogen.sh
./configure [options]
make
make install
Developing Irqbalance
Irqbalance is currently hosted on github, and so developers are welcome to use the issue/pull request/etc infrastructure found there. However, most development discussions take place on the irqbalance mailing list, which can be subscribed to at: http://lists.infradead.org/mailman/listinfo/irqbalance
New Developers are encouraged to use this mailing list to discuss ideas and propose patches.
Bug reporting
When something goes wrong, feel free to send us bugreport by one of the ways described above. Your report should include:
- Irqbalance version you've been using (or commit hash)
/proc/interrupts
outputirqbalance --debug
output- content of smp_affinity files - can be obtained by e.g.:
$ for i in $(seq 0 300); do grep . /proc/irq/$i/smp_affinity /dev/null 2>/dev/null; done
- your hw hierarchy - e.g.
lstopo-no-graphics
output