There are currently some checks for cross-numa polling cases to ensure that they won't effect the accuracy of the PMD ALB.
If an rxq is pinned to a pmd core by the user it will not be reassigned by OVS, so even if it is non-local numa polled it will not impact PMD ALB accuracy. To establish this, a check was made on whether the pmd core was isolated or not. However, since other_config:pmd-rxq-isolate was introduced, rxqs may be pinned but the pmd core not isolated. It means that by setting pmd-rxq-isolate=false and doing non-local numa pinning, PMD ALB may not run where it should. If the core is isolated we can skip individual rxq checks but if not, we should check the individual rxqs for pinning before we disallow PMD ALB. Fixes: 6193e03267c1 ("dpif-netdev: Allow pin rxq and non-isolate PMD.") Signed-off-by: Kevin Traynor <ktray...@redhat.com> --- lib/dpif-netdev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 9ae488d6e..9df41e0b6 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -5697,9 +5697,12 @@ sched_numa_list_cross_numa_polling(struct sched_numa_list *numa_list) sched_pmd = &numa->pmds[i]; + if (sched_pmd->isolated) { + continue; + } /* For each rxq. */ for (unsigned k = 0; k < sched_pmd->n_rxq; k++) { struct dp_netdev_rxq *rxq = sched_pmd->rxqs[k]; - if (!sched_pmd->isolated && + if (rxq->core_id == OVS_CORE_UNSPEC && rxq->pmd->numa_id != netdev_get_numa_id(rxq->port->netdev)) { -- 2.34.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev