Upstream has finally patched the UI communication socket
creation to happen only if the irqbalance UI is enabled.
As we do not use the irqbalance UI, we can remove
our local fix implemented by 4f0c847828.
(If you want to enable irqbalance UI, the fix is still needed.)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
(cherry picked from commit 8e71e0ad97)
Irqbalance defines /run/irqbalance dir for its socket
communication between irqbalance and its UI. /run does not exist
in OpenWrt (although it is defined by the Linux FHS), so the
socket creation fails. Although we do not compile UI and thus
the issue is not critical to us, fix the directory location.
Additionally, the creation is originally handled by a systemd
init script that we do not use.
* patch source to define dir as /var/run/irqbalance
* create the dir in the procd init script.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The package Makefile was not taking into consideration that the build
may be using BUILD_NLS with libintl-full and libiconv-full and was
trying to link the wrong versions of these libraries in this case.
The necessary flags are added by nls.mk to TARGET_LDFLAGS and can be
passed to irqbalance's configure script for setting the GLIB2_LIBS
variable instead of the explicit static link to the libiconv stub.
The PKG_BUILD_DEPENDS line should be modified so as to add to and not
override the definition set by nls.mk, which will ensure the right
version of libiconv and libintl is built beforehand.
A DEPENDS:= line should be added to the package definition using the
variables defined in nls.mk, which will add the appropriate version
of libintl and libiconv (vanilla or -full versions)
If USE_GLIBC is true, then libpthread needs to be explicitly passed
to the configure script in the GLIB2_LIBS variable for linking.
Signed-off-by: Ian Cooper <iancooper@hotmail.com>
Added support for reload_config
This service does not need to start so early (even
before the netwrok is up). Start it after
the device is mostly up and operational.
Compile-tested on: ipq806x
Runtime-tested on: ipq806x
Signed-off-by: Marc Benoit <marcb62185@gmail.com>
Added the ability to change sampling interval
and provide a list of IRQ's to ignore
via /etc/config/irqbalance
Signed-off-by: Marc Benoit <marcb62185@gmail.com>
Upgraded from 1.2.0 to 1.6.0 to pick up
all the latest fixes and improvements
irqbalance made glib2 mandatory since 1.3.0, but is
using very little of it. glib2 linked statically
to minimize the impact.
1.2.0 size: 33,619
1.6.0 size: 99,539
~# irqbalance --version
irqbalance version 1.6.0
~# ldd /usr/sbin/irqbalance
/lib/ld-musl-armhf.so.1 (0xb6f5f000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6f43000)
libc.so => /lib/ld-musl-armhf.so.1 (0xb6f5f000)
~# opkg info irqbalance
Package: irqbalance
Version: 1.6.0-6
Depends: libc
Status: install user installed
Architecture: arm_cortex-a7_neon-vfpv4
Installed-Time: 1582839249
Compile-tested: ipq806x/R7800 & ipq40xx/GL-B1300
Run-tested: ipq806x/R7800 & ipq40xx/GL-B1300
Signed-off-by: Marc Benoit <marcb62185@gmail.com>
Add support for uci config file.
Only a global 'enabled" switch has been implemented so far.
* Default config disables irqbalance initially, so that there is
no change with the previous behaviour (and the possibly existing
separate launch scripts in people's builds).
Config file and init script can be later extended for irqbalance
options like the oneshot mode or the evaluation interval
(Also change the init file to use tabs)
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
AARCH64 compilation fails due to upstream bug in 1.2.0
that has been later fixed. Backport the fix commit.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
Revert an upstream commit to enable compiling without external glib2.
Edit the 'disable UI compilation' patch to match the original
upstream commit more closely.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
The purpose of irqbalance is to distribute hardware interrupts across
processors/cores on a multiprocessor/-core system in order to increase
performance.
This initial implementation of the package uses external glib2,
which is a large dependency.
Only the cmd-line tool is compiled and installed.
Run-tested with ipq806x / R7800.
Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>