packages/utils/irqbalance/Makefile
Hannu Nyman 78c4791f42 irqbalance: Fix log spam and correct meson version
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>
2023-12-09 12:13:27 +02:00

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))