aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/route.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2014-03-23 22:51:36 -0400
committerDavid S. Miller <davem@davemloft.net>2014-03-24 00:18:44 -0400
commit99f0b958b194f7d88973f1c2190d207e0a2c7e79 (patch)
treef76073a45af1840a773084b039c53f7b7db58fb5 /net/ipv4/route.c
parent860b4042ddec744de52461f91c869630b1bb23c2 (diff)
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 <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
0 files changed, 0 insertions, 0 deletions