New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
irqbalance updates smp_affinity for ignored IRQs #297
Comments
can you post the debug output here please? |
It looks like this only happens when irqbalance runs in a procd "jail". If I try to redirect console output from irqbalance into a file, the issue is not reproduceable. If I remove the file, the issue comes back. Is it possible that there is a timing or caching issue in irqbalance startup code when checking for banned IRQs? |
I have some strange issues with irqbalance sometimes overwriting 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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
That....doesn't make any sense. When you say proc jail, I assume you are referring to a file namespace that bind mounts /proc? Are you by any chance running a second copy of irqbalance in the init namespace without the banning settings? If you need to stop other irqbalance services and run it once in a screen session with logging enabled, so you don't have to do the file redirection. But what you're describing definately sounds like you're running irqbalance twice with different settings for each instance, and they're competing with each other. Also, what version of irqbalance are you running? |
Yes, I know that this does not make sense, I have no idea what's going on, I can only see that the value of /proc/irq/27/smp_affinity and /proc/irq/28/smp_affinity sometimes switches vom f to 2 to 8 after irqbalance was started. It is reproduceable when I start irqbalance using the default script that is provided with OpenWRT. |
What I can see is: This command line works:
Log output from startup:
This command line causes IRQ bans to fail (two spaces after -t 10 and before first -i argument):
Log output showing that IRQs are not banned:
|
so you're saying the difference is that the problem triggers when you add an extra space after a single command line argument, ok. If I build the latest commit from the head of the tree, stop the system irqbalance and run:
Noting the 10 spaces after the -t 10 for good measure on my x86_64 system I get this output:
That suggests to me that there is something wrong with either the source that the openwrt irqbalance is built from, or something wrong with the startup script. It appears that openwrt ships irqbalcne 1.9.2, is that what you're running? Thats fairly recent, so I would suspect theres no problem with the source, or it would likely have reproduced here. I'd suggest running the daemon under a debugger, breaking in main to see if the command line argument itself is getting properly parsed. |
I've created a PR at OpenWRT to fix the init script, hopefully it will get merged. |
P.S.: OpenWRT uses 1.9.3 |
No worries, what was the problem with their script? |
This change fixes the issue for me. No idea why... |
I have some strange issues with irqbalance sometimes overwriting 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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
I have some strange issues with irqbalance sometimes overwriting 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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
I have some strange issues with irqbalance sometimes overwriting 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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com> (cherry picked from commit 41e5b97)
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 Irqbalance/irqbalance#297 Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com> (cherry picked from commit 41e5b97)
I use -i parameter to exclude (ban) IRQs from irqbalance. Platform is an rpi4 wit arm64. On startup, irqbalance updates the smp_affinity for these banned IRQs also. I would expect that irqbalance will not touch banned IRQs at all.
Before irqbalance start:
irqbalance start using
/usr/sbin/irqbalance -f -c 2 -t 10 -i 14 -i 27 -i 28 -i 30
shows:But after some seconds, smp_affinity is modified for two of the banned IRQs:
There is no useful output about these IRQs from irqbalance, not even with -d flag.
The text was updated successfully, but these errors were encountered: