b66647ab75
Intel's new hardware supports Hardware Feedback Interface to provide CPU performance and energy efficiency information. Every update on this is delivered via thermal event interrupt. The thermal framework in the Linux kernel relays these notifications to userspace via a Netlink interface. When a CPU's performance and efficiency are zero, irqbalance needs to mask the CPU from interrupts. Introduce a new CPU mask to indicate banned CPUs for this. Before supporting this event handling, define functions. Their implementation will be on the following patches. This event is available only on x86-64 systems. And it can be subscribed with help of Netlink libraries. So check them before building it. Also add a new build option so users may opt out this support. Setting this option on other systems will result in a build failure. Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> |
||
---|---|---|
misc | ||
tests | ||
ui | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
COPYING | ||
Makefile.am | ||
README.md | ||
activate.c | ||
autogen.sh | ||
bitmap.c | ||
bitmap.h | ||
classify.c | ||
configure.ac | ||
constants.h | ||
cpumask.h | ||
cputree.c | ||
irqbalance-ui.1 | ||
irqbalance.1 | ||
irqbalance.c | ||
irqbalance.h | ||
irqlist.c | ||
non-atomic.h | ||
numa.c | ||
placement.c | ||
procinterrupts.c | ||
thermal.c | ||
thermal.h | ||
types.h |
README.md
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.
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