-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Tom Herbert says: ==================== net: Eliminate gso_send_check gso_send_check presents a lot of complexity for what it is being used for. It seems that there are only two cases where it might be effective: TCP and UFO paths. In these cases, the gso_send_check function initializes the TCP or UDP checksum respectively to the pseudo header checksum so that the checksum computation is appropriately offloaded or computed in the gso_segment functions. The gso_send_check functions are only called from dev.c in skb_mac_gso_segment when ip_summed != CHECKSUM_PARTIAL (which seems very unlikely in TCP case). We can move the logic of this into the respective gso_segment functions where the checksum is initialized if ip_summed != CHECKSUM_PARTIAL. With the above cases handled, gso_send_check is no longer needed, so we can remove all uses of it and the fields in the offload callbacks. With this change, ip_summed in the skb should be preserved though all the layers of gso_segment calls. In follow-on patches, we may be able to remove the check setup code in tcp_gso_segment if we can guarantee that ip_summed will always be CHECKSUM_PARTIAL (verify all paths and probably add an assert in tcp_gro_segment). Tested these patches by: - netperf TCP_STREAM test with GSO enabled - Forced ip_summed != CHECKSUM_PARTIAL with above - Ran UDP_RR with 10000 request size over GRE tunnel. This exercised UFO path. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Showing
10 changed files
with
83 additions
and
186 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.