irqbalance Update init script to remove duplicate spaces
authorkrant <aleksey.vasilenko@gmail.com>
Wed, 28 Feb 2024 11:50:10 +0000 (13:50 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Thu, 7 Mar 2024 14:48:05 +0000 (16:48 +0200)
I have some strange issues with irqbalance sometimes overwritin
smp_affinity values for banned/ignored IRQs. The issue is reproduceable
and is mitigated when I change theway how the irqbalance command line is
built. The only difference between the resulting command is that there
is only one space between the -t parameter and the first -i parameter
value.

Also see https://github.com/Irqbalance/irqbalance/issues/297

Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
utils/irqbalance/Makefile
utils/irqbalance/files/irqbalance.init

index 83f07da8494445c9ced1b2b187cff4142e8bfffb..d1486a44ef5692b78569c3b92572f806b22ede6d 100644 (file)
@@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=irqbalance
 PKG_VERSION:=1.9.3
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/Irqbalance/irqbalance.git
index 2c4248b382778cf17d9e7c66b62688bcd6df4d6c..05145ca8b6958f5ad2decee9636d220c7d437342 100644 (file)
@@ -16,28 +16,36 @@ start_service() {
        config_get_bool enabled irqbalance enabled 0
        [ "$enabled" -gt 0 ] || return 0
 
-       # 2 is the default
        config_get deepestcache irqbalance deepestcache 2
-
-       # 10 is the default
        config_get interval irqbalance interval 10
-
-       # empty is the default
        config_get banned_cpulist irqbalance banned_cpulist ''
+       config_get debug irqbalance debug 0
+
+       procd_open_instance "irqbalance"
+       if [ -n "$banned_cpulist" ]; then
+               procd_set_param env IRQBALANCE_BANNED_CPULIST="$banned_cpulist"
+       fi
+
+       procd_add_jail_mount_rw /proc
+       procd_set_param command /usr/sbin/irqbalance
+       procd_append_param command -f
+       procd_append_param command "-c $deepestcache"
+       procd_append_param command "-t $interval"
 
-       # A list of IRQ's to ignore
-       banirq=""
+       # add banned IRQs
        handle_banirq_value()
        {
-               banirq="$banirq -i $1"
+               procd_append_param command "-i $1"
        }
        config_list_foreach irqbalance banirq handle_banirq_value
 
-       procd_open_instance "irqbalance"
-       if [ -n "$banned_cpulist" ]; then
-               procd_set_param env IRQBALANCE_BANNED_CPULIST="$banned_cpulist"
+       # debug
+       if [ "$debug" -gt 0 ]; then
+               procd_append_param command -d
+               procd_set_param stdout 1
        fi
-       procd_set_param command /usr/sbin/irqbalance -f -c "$deepestcache" -t "$interval" "$banirq"
+       procd_set_param stderr 1
+
        procd_set_param respawn
        procd_close_instance
 }