I build my own images from source.
My previous build was: OpenWrt 23.05-SNAPSHOT r23630-842932a63d / LuCI openwrt-23.05 branch git-23.315.63824-5a81162
With this build irqbalance was enabled and it was working on all my routers.
content of /etc/config/irqbalance:
config irqbalance 'irqbalance'
option enabled '1'
After today's git pull the build is OpenWrt 23.05-SNAPSHOT r23645-7606dac661 / LuCI openwrt-23.05 branch git-23.315.63824-5a81162
After flashing this new build, irqbalance started throwing the following errors:
The reason seems to be upstream irqbalance changes, regarding meson build system (which was pushed to upstream by @neheb and is still consider as a sideshow, as discussed in https://github.com/Irqbalance/irqbalance/pull/279)
There are post-1.9.3 fixes for meson upstream, and I will try them.
Apparently the current code in 1.9.3 requires dependency adjustments for meson.
Seems that the error is not actually about the meson side (although also that might need attention, as we are still using your meson 1.9.0 build file, instead of the 1.9.3)
The error is due to thinking some errors as transient and not disabling them at the (first) failure.
We are specifically in some 23.05 device suffering from EINVAL error.
this is from my R7800, log and strace for one interrupt (48):
Changing EINVAL to be a permanent error fixes it, and reverts to the earlier behaviour:
--- a/activate.c
+++ b/activate.c
@@ -98,11 +98,11 @@ error:
case ENOSPC: /* Specified CPU APIC is full. */
case EAGAIN: /* Interrupted by signal. */
case EBUSY: /* Affinity change already in progress. */
- case EINVAL: /* IRQ would be bound to no CPU. */
case ERANGE: /* CPU in mask is offline. */
case ENOMEM: /* Kernel cannot allocate CPU mask. */
/* Do not blacklist the IRQ on transient errors. */
break;
+ case EINVAL: /* IRQ would be bound to no CPU. */
default:
/* Any other error is considered permanent. */
info->flags |= IRQ_FLAG_AFFINITY_UNMANAGED;
I will probably add that as a quick fix for 23.05, but I wonder why the unpatched 1.9.3 seemed to work in main/master build for R7800.
Depends on queuing luck in the buildbot round-robin logic...
Can take 1-3 days before your architecture is built and irqbalance 1.9.3-2 is downloadable .
Normal.
Those two IRQs are just recognized as unmanageable and marked so "is now unmanaged", so that there is no error on each run at every 10 seconds.