Package: irqbalance
Version: 1.1.0-2.3
Severity: important
Dear Maintainer,
I noticed that irqbalance in Debian Stretch does not correctly balance
interrupts across CPU cores in the defualt configuration, i.e. the first CPU
core is ignored. This is due to a bug in the parsing of CPU masks that has
already been resolved upstream[1]. I'm copy&pasting the commit log from the
upstream fix as it already includes a comprehensive description of the problem
and steps to reproduce:
Quote:
Irq balancer scans the isolcpus and nohz_full kernel masks and adds the
corresponding CPUs to the banned_cpus mask. This works fine for valid masks,
but not for the default, emtpy masks. In this case when they read from the
sysfs they return empty strings, "\n" or "0x0, \n":
0000000: 000a
0000000: 0a
Irqbalancer reads them and blindly passes these values to the
__bitmap_parselist() function, which expects ASCII string format.
For this input the implementation always set the first bit indicating CPU 0.
Steps to Reproduce:
1. Make sure /sys/devices/system/cpu/nohz_full and
/sys/devices/system/cpu/isolated are empty [or non-existant]
2. run $ /usr/sbin/irqbalance -d --oneshot | grep Isolated
Actual results:
Isolated CPUs: 00000001
Expected results:
Isolated CPUs: 00000000
My current workaround is to manually set IRQBALANCE_BANNED_CPUS in
/etc/default/irqbalance to 00000000. But this should, of course, not be
necessary. And since this bug basically renders irqbalance useless on dual core
systems in the current default state, I'm marking the severity of this bug
"important".
Regards,
Timo
[1] Upstream fix:
https://github.com/Irqbalance/irqbalance/commit/3c9a0096584c5c96dc416172d0a586d3af39d140
-- System Information:
Debian Release: 9.1
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.9.0-3-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8),
LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages irqbalance depends on:
ii debconf [debconf-2.0] 1.5.61
ii init-system-helpers 1.48
ii libc6 2.24-11+deb9u1
ii libcap-ng0 0.7.7-3+b1
ii libglib2.0-0 2.50.3-2
ii libnuma1 2.0.11-2.1
ii libsystemd0 232-25+deb9u1
ii lsb-base 9.20161125
irqbalance recommends no packages.
irqbalance suggests no packages.
-- debconf information:
irqbalance/oneshot: false
irqbalance/enable: true