Hi All,
OVS misconfiguration leading to spinlock recursion in dev_queue_xmit. We are running ovs-2.8.1 with openvswitch kernel modules on two hosts connected back to back. We are running OVS on MIPS64 platform. We are using the below configuration. ovs-vsctl add-br br0 ovs-vsctl add-bond br0 bond0 p1p1 p1p2 ovs-vsctl set port bond0 lacp=active bond_mode=balance-tcp ifconfig br0 100.0.0.1 up ovs-vsctl add-port br0 veth0 ovs-vsctl add-port br0 vx0 -- set interface vx0 type=vxlan options:local_ip=100.0.0.1 options:remote_ip=100.0.0.2 option:key=flow ovs-ofctl add-flow br0 "table=0, priority=1, cookie=100, tun_id=100, in_port=4, action=output:3" ovs-ofctl add-flow br0 "table=0, priority=1, cookie=100, in_port=3, actions=set_field:100->tun_id output:4" When this configuration is applied on both hosts, we are seeing the below spinlock recursion bug. [<ffffffff80864cd4>] show_stack+0x6c/0xf8 [<ffffffff80ad1628>] do_raw_spin_lock+0x168/0x170 [<ffffffff80bf7b1c>] dev_queue_xmit+0x43c/0x470 [<ffffffff80c32c08>] ip_finish_output+0x250/0x490 [<ffffffffc0115664>] rpl_iptunnel_xmit+0x134/0x218 [openvswitch] [<ffffffffc0120f28>] rpl_vxlan_xmit+0x430/0x538 [openvswitch] [<ffffffffc00f9de0>] do_execute_actions+0x18f8/0x19e8 [openvswitch] [<ffffffffc00fa2b0>] ovs_execute_actions+0x90/0x208 [openvswitch] [<ffffffffc0101860>] ovs_dp_process_packet+0xb0/0x1a8 [openvswitch] [<ffffffffc010c5d8>] ovs_vport_receive+0x78/0x130 [openvswitch] [<ffffffffc010ce6c>] internal_dev_xmit+0x34/0x98 [openvswitch] [<ffffffff80bf74d0>] dev_hard_start_xmit+0x2e8/0x4f8 [<ffffffff80c10e48>] sch_direct_xmit+0xf0/0x238 [<ffffffff80bf78b8>] dev_queue_xmit+0x1d8/0x470 [<ffffffff80c5ffe4>] arp_process+0x614/0x628 [<ffffffff80bf0cb0>] __netif_receive_skb_core+0x2e8/0x5d8 [<ffffffff80bf4770>] process_backlog+0xc0/0x1b0 [<ffffffff80bf501c>] net_rx_action+0x154/0x240 [<ffffffff8088d130>] __do_softirq+0x1d0/0x218 [<ffffffff8088d240>] do_softirq+0x68/0x70 [<ffffffff8088d3a0>] local_bh_enable+0xa8/0xb0 [<ffffffff80bf5c88>] netif_rx_ni+0x20/0x30 The packet path traced is : netif_rx->arp->dev_queue_xmit(internal port)->vxlan_xmit->dev_queue_xmit(internal port). According to the configuration, this packet path is valid. But we should not hit the crash. Questions: - Is it a kernel bug or ovs bug ? - How OVS handles these kind of misconfigurations? Any suggestion or help is greatly appreciated. Thanks Neelakantam Gaddam -- Thanks & Regards Neelakantam Gaddam
_______________________________________________ discuss mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
