Messages in this thread Patch in this message | | | From | Geetha sowjanya <> | Subject | [net-next PATCH] octeontx2-pf: Use only non-isolated cpus in irq affinity | Date | Mon, 25 Jul 2022 15:14:02 +0530 |
| |
This patch excludes the isolates cpus from the cpus list while setting up TX/RX queue interrupts affinity
Signed-off-by: Geetha sowjanya <gakula@marvell.com> Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> --- .../ethernet/marvell/octeontx2/nic/otx2_common.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c index fb8db5888d2f..9886a02dd756 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -8,6 +8,7 @@ #include <linux/interrupt.h> #include <linux/pci.h> #include <net/tso.h> +#include <linux/sched/isolation.h> #include "otx2_reg.h" #include "otx2_common.h" @@ -1657,9 +1658,16 @@ void otx2_set_cints_affinity(struct otx2_nic *pfvf) { struct otx2_hw *hw = &pfvf->hw; int vec, cpu, irq, cint; + cpumask_var_t mask; + + if (!alloc_cpumask_var(&mask, GFP_KERNEL)) + return; + + cpumask_and(mask, cpu_online_mask, + housekeeping_cpumask(HK_TYPE_DOMAIN)); + cpu = cpumask_first(mask); vec = hw->nix_msixoff + NIX_LF_CINT_VEC_START; - cpu = cpumask_first(cpu_online_mask); /* CQ interrupts */ for (cint = 0; cint < pfvf->hw.cint_cnt; cint++, vec++) { @@ -1671,10 +1679,11 @@ void otx2_set_cints_affinity(struct otx2_nic *pfvf) irq = pci_irq_vector(pfvf->pdev, vec); irq_set_affinity_hint(irq, hw->affinity_mask[vec]); - cpu = cpumask_next(cpu, cpu_online_mask); + cpu = cpumask_next(cpu, mask); if (unlikely(cpu >= nr_cpu_ids)) cpu = 0; } + free_cpumask_var(mask); } u16 otx2_get_max_mtu(struct otx2_nic *pfvf) -- 2.17.1
| |