> On 23/05/18 15:42, Stokes, Ian wrote: > >> When initialization of the DPDK PMD driver fails > >> (dpdk_eth_dev_init()), the reconfigure_datapath() function will > >> remove the port from dp_netdev, and the port is not used. > >> > >> Now when bridge_reconfigure() is called again, no changes to the > >> previous failing netdev configuration are detected and therefore the > >> ports gets added to dp_netdev and used uninitialized. This is causing > exceptions... > >> > >> The fix has two parts to it. First in netdev-dpdk.c we remember if > >> the DPDK port was started or not, and when calling > >> netdev_dpdk_reconfigure() we also try re-initialization if the port > >> was not already active. The second part of the change is in > >> dpif-netdev.c where it makes sure netdev_reconfigure() is called if > >> the port needs reconfiguration, as netdev_is_reconf_required() is > >> only true until > >> netdev_reconfigure() is called (even if it fails). > > Thanks for this Eelco. The code LGTM, in terms of back porting I was > able to re-produce the error it fixes on master, 2.9 and 2.8 so I'll > backport it to them. However port errors seem to be handled correctly for > 2.7 and 2.6 in my testing. > > > > Have you seen the same behavior for 2.7 and 2.6 in your testing? We can > backport to those also if you have but just wanted to confirm. > I only tested this on 2.8 and 2.9, I did not try any release earlier. If > you tested 2.6-7 and it handles the port errors correctly, 2.8-9 seems > enough to me.
Ok I'll backport to master, 2.9 & 2.8 for now. Again thanks for working on this. Ian > > > Thanks > > Ian _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
