silentcreek Posted August 10, 2017 Posted August 10, 2017 As armbian incorporates some performance tweaks also with regards to IRQ balancing on Allwinner devices, I just wanted to note, that the irqbalance daemon now finally works on armhf in Debian Stretch. I had tried irqbalanced on arm several times over the last two years, and neither the versions shipped in Wheezy or Jessie actually worked (i.e. balanced IRQs over multiple cores). I also tried to compile a more recent version last year but couldn't get it to work. So, now after upgrading one of my BananaPis to Debian Stretch, I gave irqbalanced another shot and am happy to see that interrupts are now nicely balanced, including e.g. ethernet and USB interrupts.
tkaiser Posted August 10, 2017 Posted August 10, 2017 Thanks for the heads-up, Timo! Did you made any performance tests already? Since eg. network interrrupts being spread accross all CPU cores often decreases performance compared to fixed IRQ affinity.
silentcreek Posted August 11, 2017 Author Posted August 11, 2017 I haven't done any extensive testing so far. I did a quick test with a samba share serving files off a USB hard drive, and couldn't see any notable difference (at least not beyond measurement uncertainty), which was "good enough" for me. But sure, before rolling this out as a default, some more extensive testing with various kinds of loads should be done. But I do not have spare boards at the moment as all my systems serve their own purpose, so I tend not to "play" around too much with them.
silentcreek Posted October 8, 2017 Author Posted October 8, 2017 I had a closer look at irqbalance on my ARM systems in the meantime and it turns out that my initial finding that irqbalance would finally be working on ARM is wrong. Sigh! Actually, it only appears to be working because of an upstream bug in irqbalance that prevents assigning any interrupts to CPU0 in the default configuration, so all interrupts will be handled by the second CPU on a dual-core system after irqbalance is launched [1]. When you work around that bug, you will find that irqbalance still doesn't do anything on ARM/Allwinner devices, unfortunately. So, I went back to managing IRQ affinity statically on my ARM systems. [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876431
Recommended Posts