linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* IRQ affinity enforced only after first interrupt.
@ 2012-03-26  9:06 Yevgeny Petrilin
  2012-03-26 14:28 ` Bjorn Helgaas
  0 siblings, 1 reply; 9+ messages in thread
From: Yevgeny Petrilin @ 2012-03-26  9:06 UTC (permalink / raw)
  To: linux-pci

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-04-05  8:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-26  9:06 IRQ affinity enforced only after first interrupt Yevgeny Petrilin
2012-03-26 14:28 ` Bjorn Helgaas
2012-03-26 14:33   ` Jiang Liu
2012-03-26 15:24     ` Yevgeny Petrilin
2012-03-26 19:04       ` Thomas Gleixner
2012-03-27  9:39         ` Yevgeny Petrilin
2012-03-27 12:52           ` Thomas Gleixner
2012-04-04 10:01         ` Alexander Gordeev
2012-04-05  8:47           ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).