• E
    net: optimize csum_replace2() · 99f0b958
    Eric Dumazet 提交于
    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: NEric Dumazet <edumazet@google.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    99f0b958
checksum.h 3.9 KB