From: Eric Dumazet Date: Mon, 24 Mar 2014 02:51:36 +0000 (-0700) Subject: net: optimize csum_replace2() X-Git-Tag: v3.15-rc1~113^2~106 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99f0b958b194f7d88973f1c2190d207e0a2c7e79;p=pandora-kernel.git net: optimize csum_replace2() When changing one 16bit value by another in IP header, we can adjust the IP checksum by doing a simple operation described in RFC 1624, as reminded by David. csum_partial() is a complex function on x86_64, not really suited for small number of checksummed bytes. I spotted csum_partial() being in the top 20 most consuming functions (more than 1 %) in a GRO workload, which was rather unexpected. The caller was inet_gro_complete() doing a csum_replace2() when building the new IP header for the GRO packet. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller --- Reading git-diff-tree failed