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 d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev