I looked at TSO code earlier this year. IIRC, if TSO is on, the upper layer (e.g. IP) would just send the super-packet down (to IPOIB) w/out segmentation (for send); if off, it then does the segmentation (to match the MTU size) before calling device's send. For GSO, I would imagine it needs some sorts of segmentation sequence to know how to pull them together on the receive end. Look to me that the "segmentation offload" (TSO) and "receive offload (GSO) are mutual exclusive ? Check out dev_gro_receive() (line number based on 2.6.32 RHEL kernel):
2980 2981 if (skb_is_gso(skb) || skb_has_frags(skb)) 2982 goto normal; See how it bails out when TSO (skb_is_gso()) is on ? So it looks like an IPOIB bug that ipoib_ib_handle_rx_wc() does a unconditional napi_gro_receive() regardless adapter capability (and TSO setting). Just a guess ! -- Wendy -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html