b65faa2b65
when invoking setup_irqs in settings or invoking settings in setup_irqs, it doesn't break but enters another while loop. For example: # gdb program `pidof irqbalance-ui` (gdb) bt #0 0x0000ffffb0dcc7b0 in poll () from /usr/lib64/libc.so.6 #1 0x0000ffffb0e9097c in _nc_timed_wait () from /usr/lib64/libtinfo.so.6 #2 0x0000ffffb0ecc154 in _nc_wgetch () from /usr/lib64/libncursesw.so.6 #3 0x0000ffffb0eccb18 in wgetch () from /usr/lib64/libncursesw.so.6 #4 0x00000000004045d4 in setup_irqs () at ui/ui.c:637 #5 0x0000000000404084 in settings () at ui/ui.c:614 #6 0x0000000000404084 in settings () at ui/ui.c:614 #7 0x0000000000404084 in settings () at ui/ui.c:614 #8 0x0000000000404084 in settings () at ui/ui.c:614 #9 0x0000000000404084 in settings () at ui/ui.c:614 #10 0x0000000000404084 in settings () at ui/ui.c:614 #11 0x0000000000404084 in settings () at ui/ui.c:614 #12 0x0000000000401fac in key_loop (data=<optimized out>) at ui/irqbalance-ui.c:387 #13 0x0000ffffb105371c in ?? () from /usr/lib64/libglib-2.0.so.0 #14 0x0000ffffb1052a84 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0 #15 0x0000ffffb1052e38 in ?? () from /usr/lib64/libglib-2.0.so.0 #16 0x0000ffffb1053188 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0 #17 0x000000000040196c in main (argc=<optimized out>, argv=<optimized out>) at ui/irqbalance-ui.c:445 Signed-off-by: Liu Chao <liuchao173@huawei.com> |
||
---|---|---|
contrib | ||
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 | ||
thermal.c | ||
thermal.h | ||
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.
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