Do softirqs in Linux have node affinity?

The xe driver forwards MEI interrupts via softirq, and that one is allocated on node 0, hardcoded. Is that bad if another node has the IRQ handler that pokes the softirq?

@GyrosGeier are they not poked per-CPU?
@mirabilos that's what I'd like to find out — allocating a softirq takes a node number as argument, and I wonder if that is silently ignored, or if it makes some structure node affine (so poking the softirq requires atomic accesses to the other node, which is not great but also not a problem) or if it actually wakes up a CPU on the other node to service the interrupt, which will then interact with hardware across the NUMA link.
@GyrosGeier ugh, I only very vaguely remember those parts of the code from when I was looking for something, so I’d rather not rely on that faint memory
@GyrosGeier As I understand it softirqs are replicated across all CPUs. Normally they run on whichever CPU(s) trigger them. Networking has the RPS and RFS features to spread or direct packet processing across multiple instances of the NAPI softirqs. I don't know about other softirq types.
@bwh ah, excellent, so the node number is not used for the call, only for where the irq_desc is allocated, so https://patchwork.freedesktop.org/series/156945/ is somewhere between "unnecessary" and "cosmetic".
Intel Xe - Patchwork