ionic: improve irq numa locality
[ Upstream commit b7f55b81f2ac40e52c5a56e22c80488eac531c91 ] Spreading the interrupts across the CPU cores is good for load balancing, but not necessarily as good when using a CPU/core that is not part of the NUMA local CPU. If it can be localized, the kernel's cpumask_local_spread() service will pick a core that is on the node close to the PCI device. Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of: abfb2a58a537 ("ionic: remove WARN_ON to prevent panic_on_warn") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
808211a8d4
commit
ef7fc26b6a
@ -418,8 +418,9 @@ static int ionic_qcq_alloc(struct ionic_lif *lif, unsigned int type,
|
||||
ionic_intr_mask_assert(idev->intr_ctrl, new->intr.index,
|
||||
IONIC_INTR_MASK_SET);
|
||||
|
||||
new->intr.cpu = new->intr.index % num_online_cpus();
|
||||
if (cpu_online(new->intr.cpu))
|
||||
new->intr.cpu = cpumask_local_spread(new->intr.index,
|
||||
dev_to_node(dev));
|
||||
if (new->intr.cpu != -1)
|
||||
cpumask_set_cpu(new->intr.cpu,
|
||||
&new->intr.affinity_mask);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user