On 19.06.2019 9:35, Eelco Chaudron wrote: > > > On 19 Jun 2019, at 0:28, William Tu wrote: > >>> >>> I guess, this crash caused by trying to destroy unallocated queue. >>> >>> Following change could help: >>> --- >>> diff --git a/lib/netdev-afxdp.c b/lib/netdev-afxdp.c >>> index a6543e8f5..6e1431dce 100644 >>> --- a/lib/netdev-afxdp.c >>> +++ b/lib/netdev-afxdp.c >>> @@ -249,7 +249,7 @@ xsk_configure_all(struct netdev *netdev) >>> ifindex = linux_get_ifindex(netdev_get_name(netdev)); >>> >>> n_rxq = netdev_n_rxq(netdev); >>> - dev->xsks = xmalloc(n_rxq * sizeof(struct xsk_socket_info *)); >>> + dev->xsks = xzalloc(n_rxq * sizeof(struct xsk_socket_info *)); >>> >>> /* configure each queue */ >>> for (i = 0; i < n_rxq; i++) { >>> --- >>> >>> This should prevent OVS from crash, however, I don't know why socket >>> creation fails in your case. >>> >> Hi Ilya, >> >> Thanks, I will add this into my next version. >> >> @Eelco >> When using ovs-ctl restart, it still fails, but this is because userspace >> datapath need extra "--cleanup" argument, s.t like >> #ovs-appctl -t ovs-vswitchd --cleanup >> >> We should add it to stop_daemon() at utilities/ovs-lib.in > > It’s not there for a reason, i.e. they do not want interfaces to be removed > on OVS restart.
ovs-ctl is optimized for kernel datapath, and yes, it shouldn't cleanup on restart if kernel datapath is there. But I don't see any reason to stop the deamon without cleaning the userspace. I'm working on a patch to clean up dpif-netdev regardless of passed 'cleanup' option. > > The only thing OVS should do is not to crash ;) Or maybe try to remove the > program when it fails to add it, or an option to force program load as in the > XDP examples. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev