On Mon, Mar 30, 2015 at 7:57 PM, Yinpeijun <yinpei...@huawei.com> wrote: >>> tcp flows with gso between two VMs in diffrent host, go through vxlan >>> tunnel, cause kernel crash. >>> >>> Signed-off-by: caochengrong <caochengr...@huawei.com> >>> Signed-off-by: Arika Chen <arika.c...@huawei.com> >> >>What OVS and host kernel version is this for? I don't think this should be >>necessary, at least on master. vxlan_xmit_skb() calls >>udp_tunnel_handle_offloads(), >>which calls ip_tunnel_handle_offloads(), which calls >>skb_reset_inner_headers(). > > Thank you for your reply, The OVS version is the master and kernel version is > 3.0.93-0.8-xen and the crash stack as follow: > [ 6006.808053] [<ffffffff8034952c>] skb_segment+0x22c/0x670 > [ 6006.808053] [<ffffffff803962a8>] tcp_tso_segment+0x108/0x2a0 > [ 6006.808053] [<ffffffff803bb721>] inet_gso_segment+0xf1/0x270 > [ 6006.808053] [<ffffffff803533ca>] skb_gso_segment+0x13a/0x310 > [ 6006.808053] [<ffffffffa04f3ea9>] rpl_skb_gso_segment+0xb9/0xd0 > [openvswitch] > [ 6006.808053] [<ffffffffa04f34e3>] tnl_skb_gso_segment+0x1b3/0x2a0 > [openvswitch] > [ 6006.808053] [<ffffffffa04f36bb>] rpl_ip_local_out+0x9b/0xe0 [openvswitch] > [ 6006.808053] [<ffffffffa04f3d82>] rpl_iptunnel_xmit+0x172/0x1e0 > [openvswitch] > [ 6006.808053] [<ffffffffa04ed65d>] vxlan_tnl_send+0x1ed/0x340 [openvswitch] > [ 6006.808053] [<ffffffffa04ea07b>] ovs_vport_send+0xb/0x50 [openvswitch] > [ 6006.808053] [<ffffffffa04db7ed>] do_execute_actions+0x3bd/0x620 > [openvswitch] > [ 6006.808053] [<ffffffffa04dba97>] ovs_execute_actions+0x47/0x130 > [openvswitch] > [ 6006.808053] [<ffffffffa04dcd53>] ovs_dp_process_packet+0xa3/0x170 > [openvswitch] > [ 6006.808053] [<ffffffffa04ea320>] ovs_vport_receive+0x80/0xa0 [openvswitch] > [ 6006.808053] [<ffffffffa04ed43c>] netdev_frame_hook+0x2c/0x50 [openvswitch] > [ 6006.808053] [<ffffffff803565ad>] __netif_receive_skb+0x2fd/0x7f0 > [ 6006.808053] [<ffffffff80356b67>] process_backlog+0xc7/0x220 > [ 6006.808053] [<ffffffff803579ee>] net_rx_action+0x13e/0x2a0 > [ 6006.808053] [<ffffffff8004db3f>] __do_softirq+0xff/0x240 > [ 6006.808053] [<ffffffff8041675c>] call_softirq+0x1c/0x30 > [ 6006.808053] [<ffffffff80008625>] do_softirq+0x95/0xd0 > [ 6006.808053] [<ffffffff80357f19>] netif_rx_ni+0x19/0x20 > [ 6006.808053] [<ffffffffa08f533e>] net_tx_action+0x90e/0x14a0 [netbk] > [ 6006.808053] [<ffffffffa08f6bf9>] netbk_action_thread+0x89/0x1d0 [netbk] > [ 6006.808053] [<ffffffff80069da6>] kthread+0x96/0xa0 > [ 6006.808053] [<ffffffff80416664>] kernel_thread_helper+0x4/0x10 > [ 6006.808053] Code: 50 19 c0 49 89 70 58 41 c6 40 4c 04 83 e0 fc 83 c0 08 41 > 88 40 4d c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 > 90 48 89 f8 89 d1 <f3> a4 c3 83 e2 07 f3 48 a5 89 d1 f3 a4 c3 20 48 83 ea 20 > 4c 8b > [ 6006.808053] RIP [<ffffffff802242f5>] memcpy+0x5/0x120 > [ 6006.808053] RSP <ffff8801c5203750> > > And after we add the patch, vm send tcp packets is ok. So what you think > about ?
I think this patch is actually hiding the real problem, which is that the offsets are not updated when the buffer is reallocated. I send a patch (CC'ed to you) which makes the updates for the the fields that we have backported. Can you test it? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev