In the event of no pmd cores available on the local numa for an rxq to be assigned to, a pmd core from a non-local numa is selected.
If there are more than one non-local numas with pmd cores they are RR through and checked if they have non-isolated pmds. When successfully finding a non-local numa with available pmds for an rxq, that numa was not being stored. It meant if a similar situation occurred for a subsequent rxq, the same numa would be selected again. Store the last numa used when successfully finding a non-local numa with available pmds, so the numa RR state is kept for subsequent rxqs. Fixes: f577c2d046b2 ("dpif-netdev: Rework rxq scheduling code.") Signed-off-by: Kevin Traynor <ktray...@redhat.com> --- lib/dpif-netdev.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 8a3047439..9ae488d6e 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -6001,8 +6001,8 @@ sched_numa_list_schedule(struct sched_numa_list *numa_list, for (int j = 0; j < n_numa; j++) { numa = sched_numa_list_next(numa_list, last_cross_numa); - if (sched_numa_noniso_pmd_count(numa)) { - break; - } last_cross_numa = numa; + if (sched_numa_noniso_pmd_count(numa)) { + break; + } numa = NULL; } -- 2.34.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev