[This is not really a PCI question, so +cc Thomas, LKML.] On Mon, Mar 26, 2012 at 3:06 AM, Yevgeny Petrilin <yevgenyp@xxxxxxxxxxxxxx> wrote: > 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 -- 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