Irqbalance 1.9.3 changed the handling of certain errors. Specifically EINVAL, trying to set an invalid CPU core, was changed to be a temporary error, causing log spam from repeated balancing runs in some devices. See log and strace below. Mark EINVAL as permanent. Also correct the version in our own meson.build patch. Log and strace: Sat Dec 9 10:17:27 2023 daemon.warn irqbalance: Cannot change IRQ 48 affinity: Invalid argument open("/proc/irq/48/smp_affinity", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 6 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6ed9000 ioctl(6, TIOCGWINSZ, 0xbeb134e8) = -1 ENOTTY (Not a tty) writev(6, [{iov_base="00000001", iov_len=8}, {iov_base=NULL, iov_len=0}], 2) = -1 EINVAL (Invalid argument) close(6) = 0 munmap(0xb6ed9000, 4096) = 0 clock_gettime64(CLOCK_REALTIME, {tv_sec=1702109847, tv_nsec=340549081}) = 0 sendto(5, "<28>Dec 9 08:17:27 irqbalance: "..., 80, 0, NULL, 0) = 80 writev(1, [{iov_base="Cannot change IRQ 48 affinity: I"..., iov_len=47}, {iov_base="\n", iov_len=1}], 2Cannot change IRQ 48 affinity: Invalid argument ) = 48 Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
57 lines
1.5 KiB
Makefile
57 lines
1.5 KiB
Makefile
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=irqbalance
|
|
PKG_VERSION:=1.9.3
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
|
|
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
|
PKG_MIRROR_HASH:=ff2936e9b7486e802206cbf9e16aa6cb7e1501bdf502441d31f409d104e757b8
|
|
|
|
PKG_MAINTAINER:=Hannu Nyman <hannu.nyman@iki.fi>
|
|
PKG_LICENSE:=GPL-2.0-or-later
|
|
PKG_LICENSE_FILES:=COPYING
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
include $(INCLUDE_DIR)/meson.mk
|
|
|
|
PKG_BUILD_DEPENDS += glib2
|
|
|
|
define Package/irqbalance
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
DEPENDS:=$(ICONV_DEPENDS) $(INTL_DEPENDS)
|
|
TITLE:=IRQ usage balancing for multi-core systems
|
|
URL:=https://github.com/Irqbalance/irqbalance
|
|
endef
|
|
|
|
define Package/irqbalance/description
|
|
The purpose of irqbalance is to distribute hardware interrupts across
|
|
processors/cores on a multiprocessor/multicore system in order to
|
|
increase performance.
|
|
endef
|
|
|
|
define Package/irqbalance/conffiles
|
|
/etc/config/irqbalance
|
|
endef
|
|
|
|
MESON_ARGS += \
|
|
-Dcapng=disabled \
|
|
-Dui=disabled
|
|
|
|
define Package/irqbalance/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/irqbalance $(1)/usr/sbin/
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/irqbalance.init $(1)/etc/init.d/irqbalance
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_DATA) ./files/irqbalance.config $(1)/etc/config/irqbalance
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,irqbalance))
|