On 2026-08-21 12:38:52 [+0200], Jan Kiszka wrote:
Fully agree: drivers should not set affinities. They should just express
desires or additional constraints. The ultimately resulting affinity for
an IRQ should be the result of the various constraints that kernel and
userland may express via NUMA placements, isolcpus, some dynamic
isolation/grouping constraints, or you-name-it.
You might want to look at irq_create_affinity_masks()/
group_cpus_evenly() which attempts to spread irqs evenly across CPUs/
NUMA nodes. This is used by storage is considered a bit by the
isolcpus=managed_irq option.
I think we need a big picture how things should eventually look like and
then develop a strategy how to step-wise convert existing code.
Jan
Sebastian