On Fri, 20 Feb 2026 18:45:21 -0800
[email protected] wrote:

> +     rte_rwlock_read_lock(&hv->vf_lock);
> +     vf_dev = hn_get_vf_dev(hv);
> +     if (hv->vf_ctx.vf_vsc_switched && vf_dev &&
> +         vf_dev->data->dev_started) {
> +             void *sub_q = vf_dev->data->tx_queues[queue_id];
> +
> +             nb_tx = (*vf_dev->tx_pkt_burst)
> +                             (sub_q, tx_pkts, nb_pkts);
>               rte_rwlock_read_unlock(&hv->vf_lock);
> +             return nb_tx;
>       }
> +     rte_rwlock_read_unlock(&hv->vf_lock);

ok, but read locks not free. It does incur an additional cache miss
which may impact performance.

Might be better in future to have some form of lockless access here.

Reply via email to