Hi Pravin,
I'm trying out GRE tunnel configure/deconfigure with branch-2.5 and master
and saw that it was not able to configure the tunnel if it is recreated with
openvswitch-dkms. My environment is Centos 6.6 (2.6.32-504 kernel). I
noticed that as part of commit e23775, you added ifdef guard for
netdev_unregister in compat/ip_tunnel.c for ip_tunnel_dellink, which is used
by GRE.
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)
+void rpl_ip_tunnel_dellink(struct net_device *dev, struct list_head *head)
+#else
+void rpl_ip_tunnel_dellink(struct net_device *dev)
+#endif
+{
+ struct ip_tunnel *tunnel = netdev_priv(dev);
+ struct ip_tunnel_net *itn;
+
+ itn = net_generic(tunnel->net, tunnel->ip_tnl_net_id);
+
+ ip_tunnel_del(itn, netdev_priv(dev));
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) <<<<<<<<<<<<<
+ unregister_netdevice_queue(dev, head);
+#endif
+}
I'm confused because I donot see any similar ifdef check in other tunnels,
viz. vxlan etc and upon removing the ifdef, tunnel recreation goes through.
I've noticed other symptoms of the issue, viz a kernel trace/hang like shown
below when openvswitch is restarted with dkms loaded and GRE tunnels
configured.
Pid: 8271, comm: rmmod Not tainted 2.6.32-504.16.2.el6.x86_64 #1 Supermicro
X9SCI/X9SCA/X9SCI/X9SCA
RIP: 0010:[<ffffffff8146df08>] [<ffffffff8146df08>]
__rtnl_link_unregister+0x48/0xa0
[<ffffffff8146df23>] ? __rtnl_link_unregister+0x63/0xa0
[<ffffffff8146e42e>] ? rtnl_link_unregister+0x1e/0x30
[<ffffffffa04f8235>] ? rpl_ipgre_fini+0x15/0x40 [openvswitch]
[<ffffffffa04f1ee8>] ? ovs_vport_exit+0x18/0x30 [openvswitch]
[<ffffffffa04e65a7>] ? dp_cleanup+0x77/0x90 [openvswitch]
[<ffffffff810bd004>] ? sys_delete_module+0x194/0x260
[<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b
There must be a reason for the ifdef guard, can you please fill me in on
that?
Thanks,
Sabya
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev