About threaded interrupt handler CPU affinity
From: John Garry
Date: Mon Jul 22 2019 - 10:14:46 EST
Hi Thomas,
I have a question on commit cbf8699996a6 ("genirq: Let irq thread follow
the effective hard irq affinity"), if you could kindly check:
Here we set the thread affinity to be the same as the hard interrupt
affinity. For an arm64 system with GIC ITS, this will be a single CPU,
the lowest in the interrupt affinity mask. So, in this case, effectively
the thread will be bound to a single CPU. I think APIC is the same for this.
The commit message describes the problem that we solve here is that the
thread may become affine to a different CPU to the hard interrupt - does
it mean that the thread CPU mask could not cover that of the hard
interrupt? I couldn't follow the reason.
We have experimented with fixing the thread mask to be the same as the
interrupt mask (we're using managed interrupts), like before, and get a
significant performance boost at high IO datarates on our storage
controller - like ~11%.
Thanks in advance,
John