[PATCH 0/5] irqbalance: User interface and API availability

Veronika Kabatova vkabatov at redhat.com
Tue Dec 27 13:44:55 PST 2016

Currently, it is not possible to view assignment tree in a different way than
debug output, and there are no possibilities to change the settings during
runtime. This patchset adds the ability for socket communication, creating an
interface for users to change some settings during runtime (sleep interval,
CPU and IRQ banning). Strings needed for retrieving data and setting changes
are described in the first patch's commit message.

The main purpose of this patchset is to create a simple user interface (using
curses library). The user interface is added into configuration script and
makefile and builds as a `irqbalance-ui` command. It uses aforementioned socket
interface to communicate with irqbalance and allows user to view assignment
tree, sleep interval, CPUs and IRQs that irqbalance is working with, and to
setup irqbalance's settings (which was yet possible only with restarting).

The user interface makes it possible for users to check how the IRQs are
balanced in given moment (refresh interval of assignment tree is set to 5s) and
to easily change irqbalance's settings in case the requirements change later.
The socket interface iteslf can also be used for scripting (eg automatic banning
depending on load), which can be useful for system administrators for various

Current plans for future development include unicode / ASCII signs in tree based
on locale settings, lspci and /proc/interrupts integration for IRQ source
information (eg device or kernel driver names) and displaying generic load of
CPUs. Ideas for other enhancements are welcome.

The patches are also available as `ui` branch at GitHub:

Veronika Kabatova (5):
  Add ability for socket communication
  Add helper functions for user interface
  Add user interface functionality
  Add main user interface files
  Add user interface to configuration and build

 Makefile.am        |   8 +-
 configure.ac       |   4 +-
 cputree.c          |   9 +-
 irqbalance.c       | 257 ++++++++++++++-----
 irqbalance.h       |   4 +
 ui/helpers.c       | 169 +++++++++++++
 ui/helpers.h       |  31 +++
 ui/irqbalance-ui.c | 323 ++++++++++++++++++++++++
 ui/irqbalance-ui.h |  85 +++++++
 ui/ui.c            | 730 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 ui/ui.h            |  53 ++++
 11 files changed, 1612 insertions(+), 61 deletions(-)
 create mode 100644 ui/helpers.c
 create mode 100644 ui/helpers.h
 create mode 100644 ui/irqbalance-ui.c
 create mode 100644 ui/irqbalance-ui.h
 create mode 100644 ui/ui.c
 create mode 100644 ui/ui.h


More information about the irqbalance mailing list