On Thu, 8 Mar 2018, Ming Lei wrote: > 1) before 84676c1f21 ("genirq/affinity: assign vectors to all possible CPUs") > irq 39, cpu list 0 > irq 40, cpu list 1 > irq 41, cpu list 2 > irq 42, cpu list 3 > > 2) after 84676c1f21 ("genirq/affinity: assign vectors to all possible CPUs") > irq 39, cpu list 0-2 > irq 40, cpu list 3-4,6 > irq 41, cpu list 5 > irq 42, cpu list 7 > > 3) after applying this patch against V4.15+: > irq 39, cpu list 0,4 > irq 40, cpu list 1,6 > irq 41, cpu list 2,5 > irq 42, cpu list 3,7 That's more or less window dressing. If the device is already in use when the offline CPUs get hot plugged, then the interrupts still stay on cpu 0-3 because the effective affinity of interrupts on X86 (and other architectures) is always a single CPU. So this only might move interrupts to the hotplugged CPUs when the device is initialized after CPU hotplug and the actual vector allocation moves an interrupt out to the higher numbered CPUs if they have less vectors allocated than the lower numbered ones. Probably not an issue for the majority of machines where ACPI stupidly claims that extra CPUs are possible while there is absolute no support for physical hotplug. Though in scenarios where "physical" hotplug is possible, e.g. virt, this might come surprising. Thanks, tglx