The config file is implemented. The config file is preferred method to configure birq daemon. The command line options to set parameters is a legacy method. Use SIGHUP to re-read config file.
The 'exclude-cpus=<cpumap>' option is implemented. It allows to exclude some CPUs from the list of CPUs that process IRQs.
The licence of all birq code is BSD now. The birq doesn't contain GPL code. Thanks to Semyon Verchenko for the patch.
There were a hardware problems with birq server for a several days. Now the problems are fixed.
Conservative birq behaviour. The birq on start tries to link IRQs to CPU using current affinity. It doesn't change affinity if IRQ doesn't have affinity to multiply CPUs. It doesn't change IRQ affinity if number of interrupts is 0.
In some cases the OS can't move IRQ to specified CPU. To keep the state consistent the birq analyzes real IRQ affinity on each iteration.
Add new option --load-limit. If the loading of CPU is greater than this limit then no IRQs can't be moved to this CPU. It stabilizes the behaviour on a high load.
The "strategy" option was fixed. The Markdown documentation was added.
The printable (PDF) and HTML documentation was added. See the "Documentation" tab.
The birq was processed by the three static analysis tools. So some potential bugs were fixed.
Sometimes while a really high load the previous version of birq can mistakenly blacklist IRQs on start. It was fixed in birq-1.1.1. Also some warnings were fixed.
The proximity configuration file is implemented. It's useful for platforms with broken NUMA node proximity. Using this configuration file, the user can set PCI device proximity to a specific NUMA node or to a subset of CPUs (CPU mask).
The first version of birq project was released! Enjoy! :)
Also available in: Atom