Kevin Traynor, Jun 15, 2023 at 12:53:
> > new_n_rxq = MAX(smap_get_int(args, "n_rxq", NR_QUEUE), 1);
> > + if (dev->requested_rx_steer_flags != 0) {
> > + new_n_rxq += 1;
>
> If rx-steering is set for the port and the flow has previously not been
> able to be offloaded, the dev->requested_n_rxq will always be different
> than the netdev->n_rxq. That means this device will do a reconfigure
> anytime there is a config change on any device.
>
> e.g. If rx sterring on device A and device A cannot offload flows (this
> is acceptable). Any config change to device B will result in reconfigure
> of device A, not based on flags but based on num of rxqs.
This is why I had added an intermediate dev->user_n_rxq field in v10.
I tried to get rid of it as you suggested but it causes this issue.
Also, I think there's another side effect that is actually worse, if the
rte flow offload fails, dev->requested_n_rxq is decremented by one. If
netdev_dpdk_reconfigure() is called without reinitializing
dev->requested_n_rxq (mtu change or some other event), the value will
eventually drop down to zero and then to negative values.
I'll reintroduce user_n_rxq as an intermediate value that cannot be
modified other by than the user so that these problems cannot occur.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev