On Tue, Mar 1, 2022 at 12:25 PM Kevin Traynor <[email protected]> wrote:
>
> 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 <[email protected]>
> ---
> 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 &&
Should this be an ||? Is there a case where core_id is set but cross numa?
> rxq->pmd->numa_id !=
> netdev_get_numa_id(rxq->port->netdev)) {
> --
> 2.34.1
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
Cheers,
M
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev