Re: Configure MSI-X vectors to target different CPUs

From: Robert Hancock
Date: Thu Feb 21 2008 - 23:00:05 EST


caiying@xxxxxxxxx wrote:
Hi,

In MSI-HOWTO, it's said:

"Using MSI enables the device functions to support two or more vectors, which can be configured to target different CPUs to increase scalability."

So how can I set up MSI-X vectors to target different CPUs? I want to allocate the same number of MSI-X vectors as CPUs, and equally distribute them to every CPU.

Is it automatically done by Linux when I call pci_enable_msix()? If yes, how? If not, what should I do? My guess is to set the affinity of the interrupts manually. Am I right?

Please CC'ed me (caiying@xxxxxxxxx) answers/comments in response to this posting.

Thanks,
Ying

If the device actually supports multiple vectors (not all do), I think they should show up as separate interrupts in /proc/interrupts and you can either set the affinity manually, or maybe irqbalance is smart enough for this.

Careful, though, as in some cases this may reduce performance due to causing more cache line bouncing between CPUs.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/