diff options
author | Christoph Hellwig <hch@lst.de> | 2016-07-04 17:39:27 +0900 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-07-04 12:25:14 +0200 |
commit | 5e385a6ef31fbbf2acbda770aecc2bc2ff933d17 (patch) | |
tree | 2845d6e1d4633d50683a07d0c2bebafc990c7b2a /include | |
parent | 0972fa57f53525ffa6ced12d703750fc2791e3ce (diff) | |
download | linux-5e385a6ef31fbbf2acbda770aecc2bc2ff933d17.tar.gz linux-5e385a6ef31fbbf2acbda770aecc2bc2ff933d17.tar.bz2 linux-5e385a6ef31fbbf2acbda770aecc2bc2ff933d17.zip |
genirq: Add a helper to spread an affinity mask for MSI/MSI-X vectors
This is lifted from the blk-mq code and adopted to use the affinity mask
concept just introduced in the irq handling code. It tries to keep the
algorithm the same as the one current used by blk-mq, but improvements
like assining vectors on a per-node basis instead of just per sibling
are possible with this simple move and refactoring.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: linux-block@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: linux-nvme@lists.infradead.org
Cc: axboe@fb.com
Cc: agordeev@redhat.com
Link: http://lkml.kernel.org/r/1467621574-8277-7-git-send-email-hch@lst.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/interrupt.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 9fcabeb07787..b6683f0ffc9f 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -278,6 +278,8 @@ extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m); extern int irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify); +struct cpumask *irq_create_affinity_mask(unsigned int *nr_vecs); + #else /* CONFIG_SMP */ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m) @@ -308,6 +310,12 @@ irq_set_affinity_notifier(unsigned int irq, struct irq_affinity_notify *notify) { return 0; } + +static inline struct cpumask *irq_create_affinity_mask(unsigned int *nr_vecs) +{ + *nr_vecs = 1; + return NULL; +} #endif /* CONFIG_SMP */ /* |