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 <[email protected]>
Acked-by: Mike Pattrick <[email protected]>
---
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
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev