Skip to content

Commit 0f08520

Browse files
committed
Merge: nfp: use irq_update_affinity_hint()
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6254 JIRA: https://issues.redhat.com/browse/RHEL-40873 commit d9e2e29 Author: Mohammad Heib <mheib@redhat.com> Date: Thu Nov 7 13:50:02 2024 +0200 nfp: use irq_update_affinity_hint() irq_set_affinity_hint() is deprecated, Use irq_update_affinity_hint() instead. This removes the side-effect of actually applying the affinity. The driver does not really need to worry about spreading its IRQs across CPUs. The core code already takes care of that. when the driver applies the affinities by itself, it breaks the users' expectations: 1. The user configures irqbalance with IRQBALANCE_BANNED_CPULIST in order to prevent IRQs from being moved to certain CPUs that run a real-time workload. 2. nfp device reopening will resets the affinity in nfp_net_netdev_open(). 3. nfp has no idea about irqbalance's config, so it may move an IRQ to a banned CPU. The real-time workload suffers unacceptable latency. Signed-off-by: Mohammad Heib <mheib@redhat.com> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: Louis Peens <louis.peens@corigine.com> Link: https://patch.msgid.link/20241107115002.413358-1-mheib@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Mohammad Heib <mheib@redhat.com> Approved-by: José Ignacio Tornos Martínez <jtornosm@redhat.com> Approved-by: Izabela Bakollari <ibakolla@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Patrick Talbert <ptalbert@redhat.com>
2 parents 2970cd3 + 6c363a7 commit 0f08520

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/net/ethernet/netronome/nfp/nfp_net_common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ nfp_net_prepare_vector(struct nfp_net *nn, struct nfp_net_r_vector *r_vec,
823823
}
824824
disable_irq(r_vec->irq_vector);
825825

826-
irq_set_affinity_hint(r_vec->irq_vector, &r_vec->affinity_mask);
826+
irq_update_affinity_hint(r_vec->irq_vector, &r_vec->affinity_mask);
827827

828828
nn_dbg(nn, "RV%02d: irq=%03d/%03d\n", idx, r_vec->irq_vector,
829829
r_vec->irq_entry);
@@ -834,7 +834,7 @@ nfp_net_prepare_vector(struct nfp_net *nn, struct nfp_net_r_vector *r_vec,
834834
static void
835835
nfp_net_cleanup_vector(struct nfp_net *nn, struct nfp_net_r_vector *r_vec)
836836
{
837-
irq_set_affinity_hint(r_vec->irq_vector, NULL);
837+
irq_update_affinity_hint(r_vec->irq_vector, NULL);
838838
nfp_net_napi_del(&nn->dp, r_vec);
839839
free_irq(r_vec->irq_vector, r_vec);
840840
}

0 commit comments

Comments
 (0)