On 16/05/18 12:19, Loftus, Ciara 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).
Signed-off-by: Eelco Chaudron <[email protected]>
Tested-by: Ciara Loftus <[email protected]>
Thanks for the patch, Eelco. I tested it by simulating an error in
dpdk_eth_dev_init causing the dpdk port to be removed from dp_netdev. Before
this patch, if a vhost port was added after this error, a reconfigure was
triggered and I observed a SEGV. With this patch applied I no longer see a SEGV.
The patch needs a rebase and one minor style fix below.
Thanks for testing it! I've sent out a re-based V2, and fixed the style
issue.
Thanks,
Ciara
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev