> 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

Reply via email to