Hi, Recently we upgraded to ovs 2.5 and use the datapath in the ovs code(means we do not use kernel datapath), however, when we test vxlan performance between two VMs on different compute node, we observed the bandwidth can only achieve 5Gbps on the 10Gbps intel nic pair, and we are still using kernel v3.14.57.
We found lots of following warning (see stack in the PS) in dmesg and thinks it causes the bad performance. After trying to read the source code of the kernel and ovs 2.5 datapath code, it seems gso_type 513(0x201) cause the problem, since our VM tap interface does not have tx-udp_tnl-segmentation(NETIF_F_GSO_UDP_TUNNEL_BIT) flag enabled by default, net_gso_ok return false which cause __skb_gso_segment being called, and since tcpv4_gso_complete have set the skb->ip_summed to CHECKSUM_UNCESSARY, which cause skb_warn_bad_offload being called. My wonder is whether this is a desired behavior, or OVS should clear the NETIF_F_GSO_UDP_TUNNEL_BIT bit when send the inner packet (may be GSOed) to tap interface on the host? Thanks a lot. PS: [1911068.644732] WARNING: CPU: 2 PID: 0 at net/core/dev.c:2246 skb_warn_bad_offload+0xc8/0xd3() [1911068.644735] : caps=(0x00000020001948c9, 0x0000000000000000) len=1597 data_len=1531 gso_size=1348 gso_type=513 ip_summed=1 [1911068.644736] Modules linked in: vp_toa(O) vport_vxlan(O) openvswitch(O) nf_defrag_ipv6 xt_nat xt_REDIRECT nls_utf8 nls_cp437 vfat fat ipmi_devintf vhost_net vhost macvtap macvlan tun loop nbd xt_comment xt_state tcp_diag inet_diag gre vxlan libcrc32c xt_CHECKSUM iptable_mangle ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge iscsi_trgt(O) crc32c ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache sunrpc 8021q garp stp mrp llc nbsramdisk(O) snd_pcm snd_timer snd soundcore x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul crc32c_intel evdev aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd mgag200 ttm drm_kms_helper drm shpchp iTCO_wdt iTCO_vendor_support lpc_ich ipmi_si mei_me ipmi_msghandler mei dcdbas pcspkr ehci_pci ehci_hcd usbcore usb_common mfd_core wmi acpi_power_meter processor thermal_sys button ext4 crc16 mbcache jbd2 dm_mod md_mod sg sd_mod crc_t10dif crct10dif_common igb i2c_algo_bit ixgbe i2c_core dca megaraid_sas ptp pps_core scsi_mod mdio [last unloaded: openvswitch] [1911068.644827] CPU: 2 PID: 0 Comm: swapper/2 Tainted: G W O 3.14.57-openstack-amd64 #1 [1911068.644829] Hardware name: Dell Inc. PowerEdge R730xd/0H21J3, BIOS 1.3.6 06/03/2015 [1911068.644830] 0000000000000000 0000000000000009 ffffffff81524cd0 ffff88307f423558 [1911068.644837] ffffffff8106940b ffff882f84279940 ffff883fb1d14000 0000000000000201 [1911068.644842] 0000000000000001 0000000000000010 ffffffff810694fa ffffffff81755988 [1911068.644847] Call Trace: [1911068.644848] <IRQ> [<ffffffff81524cd0>] ? dump_stack+0x41/0x51 [1911068.644857] [<ffffffff8106940b>] ? warn_slowpath_common+0x8b/0xc0 [1911068.644860] [<ffffffff810694fa>] ? warn_slowpath_fmt+0x4a/0x50 [1911068.644865] [<ffffffff812c5cc8>] ? ___ratelimit+0xb8/0x160 [1911068.644869] [<ffffffff8152632d>] ? skb_warn_bad_offload+0xc8/0xd3 [1911068.644873] [<ffffffff810ae354>] ? __wake_up_common+0x54/0x90 [1911068.644878] [<ffffffff814354a9>] ? __skb_gso_segment+0x79/0xc0 [1911068.644881] [<ffffffff81435695>] ? dev_hard_start_xmit+0x1a5/0x580 [1911068.644887] [<ffffffff81456045>] ? sch_direct_xmit+0x105/0x1d0 [1911068.644890] [<ffffffff81435c7a>] ? __dev_queue_xmit+0x20a/0x4d0 [1911068.644896] [<ffffffffa06e9387>] ? do_output.isra.35+0x47/0x140 [openvswitch] [1911068.644900] [<ffffffffa06ea24a>] ? do_execute_actions+0xdca/0x11d0 [openvswitch] [1911068.644904] [<ffffffff8142d0df>] ? skb_flow_dissect+0x18f/0x3b0 [1911068.644909] [<ffffffffa06f5f22>] ? flow_lookup.isra.6+0x42/0xc0 [openvswitch] [1911068.644914] [<ffffffffa06ea68b>] ? ovs_execute_actions+0x3b/0x120 [openvswitch] [1911068.644918] [<ffffffffa06eeea9>] ? ovs_dp_process_packet+0x99/0x130 [openvswitch] [1911068.644923] [<ffffffffa06efc7e>] ? key_extract+0x86e/0xc60 [openvswitch] [1911068.644928] [<ffffffffa06f7335>] ? ovs_vport_receive+0x85/0xf0 [openvswitch] [1911068.644933] [<ffffffffa06efb0e>] ? key_extract+0x6fe/0xc60 [openvswitch] [1911068.644937] [<ffffffffa06f7335>] ? ovs_vport_receive+0x85/0xf0 [openvswitch] [1911068.644943] [<ffffffff8106e804>] ? __local_bh_enable_ip+0x74/0xe0 [1911068.644946] [<ffffffff81435cc0>] ? __dev_queue_xmit+0x250/0x4d0 [1911068.644950] [<ffffffff8106e804>] ? __local_bh_enable_ip+0x74/0xe0 [1911068.644953] [<ffffffff8106e804>] ? __local_bh_enable_ip+0x74/0xe0 [1911068.644959] [<ffffffffa07076f0>] ? vxlan_rcv+0x290/0x6d0 [openvswitch] [1911068.644964] [<ffffffffa05f08ad>] ? udp_packet+0x7d/0x90 [nf_conntrack] [1911068.644969] [<ffffffffa05ea37d>] ? nf_conntrack_in+0x26d/0x920 [nf_conntrack] [1911068.644975] [<ffffffffa0707cab>] ? vxlan_udp_encap_recv+0x17b/0x220 [openvswitch] [1911068.644981] [<ffffffff81499a40>] ? udp_queue_rcv_skb+0x140/0x340 [1911068.644984] [<ffffffff8149a41c>] ? __udp4_lib_rcv+0x37c/0x6c0 [1911068.644989] [<ffffffff8146b90e>] ? ip_local_deliver_finish+0x9e/0x200 [1911068.644992] [<ffffffff814333cb>] ? __netif_receive_skb_core+0x6db/0x830 [1911068.644996] [<ffffffff8101de25>] ? read_tsc+0x5/0x20 [1911068.645000] [<ffffffff8143375f>] ? netif_receive_skb_internal+0x1f/0x80 [1911068.645004] [<ffffffff81433f43>] ? dev_gro_receive+0x2c3/0x480 [1911068.645007] [<ffffffff8143423f>] ? napi_gro_receive+0x1f/0xf0 [1911068.645018] [<ffffffffa00e4a5d>] ? ixgbe_clean_rx_irq+0x81d/0xb70 [ixgbe] [1911068.645026] [<ffffffffa00e5d40>] ? ixgbe_poll+0x4f0/0x9a0 [ixgbe] [1911068.645031] [<ffffffff810c21c1>] ? handle_irq_event+0x51/0x70 [1911068.645035] [<ffffffff812cd92a>] ? trace_hardirqs_off_thunk+0x3a/0x6c [1911068.645039] [<ffffffff8152aabc>] ? _raw_spin_lock_irqsave+0x2c/0x70 [1911068.645043] [<ffffffff81433b62>] ? net_rx_action+0x152/0x270 [1911068.645047] [<ffffffff8106e4ff>] ? __do_softirq+0x12f/0x2e0 [1911068.645051] [<ffffffff8106e9a5>] ? irq_exit+0xb5/0xc0 [1911068.645056] [<ffffffff81535ab6>] ? do_IRQ+0x66/0x110 [1911068.645059] [<ffffffff8152af72>] ? common_interrupt+0x72/0x72 [1911068.645060] <EOI> [<ffffffff8152afe4>] ? retint_restore_args+0x13/0x13 [1911068.645067] [<ffffffff810c12d9>] ? cpu_startup_entry+0x159/0x250 [1911068.645070] [<ffffffff810c12b5>] ? cpu_startup_entry+0x135/0x250 [1911068.645072] --[ end trace 80f530a2f3ff3740 ]--
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss