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 optimizations. 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: https://github.com/veruu/irqbalance/tree/ui 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 -- 2.7.4