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

Reply via email to