Hello, I'm working on an issue where affinity changes to IRQ only have effect after the first interrupt which still happens on the original core. I understand that the decision regarding it takes place in this code: if (irq_can_move_pcntxt(data)) { ret = chip->irq_set_affinity(data, mask, false); switch (ret) { case IRQ_SET_MASK_OK: cpumask_copy(data->affinity, mask); case IRQ_SET_MASK_OK_NOCOPY: irq_set_thread_affinity(desc); ret = 0; } } else { irqd_set_move_pending(data); irq_copy_pending(desc, mask); } Which means that the "IRQD_MOVE_PCNTXT" flag is not set in irq_data->state_use_accessors. I was able to add this flag using irq_modify_status(), which is probably not the way to go. This option also doesn't exist in older kernels (2.6.32) So the question is, when irq_desc is created, how is it determined that "IRQD_MOVE_PCNTXT" flag is set? Thanks, Yevgeny -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html