[ovs-discuss] OVS misconfiguration issue
Neelakantam Gaddam
neelugaddam at gmail.com
Mon Apr 30 05:47:37 UTC 2018
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 especially packet
loops involved?
Any suggestion or help is greatly appreciated.
Thanks
--
Thanks & Regards
Neelakantam Gaddam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20180430/f47d7f1a/attachment-0001.html>
More information about the discuss
mailing list