• LEROY Christophe's avatar
    net: optimise csum_replace4() · 4565af0d
    LEROY Christophe authored
    csum_partial() is a generic function which is not optimised for small fixed
    length calculations, and its use requires to store "from" and "to" values in
    memory while we already have them available in registers. This also has impact,
    especially on RISC processors. In the same spirit as the change done by
    Eric Dumazet on csum_replace2(), this patch rewrites inet_proto_csum_replace4()
    taking into account RFC1624.
    
    I spotted during a NATted tcp transfert that csum_partial() is one of top 5
    consuming functions (around 8%), and the second user of csum_partial() is
    inet_proto_csum_replace4().
    
    I have proposed the same modification to inet_proto_csum_replace4() in another
    patch.
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Acked-by: default avatarEric Dumazet <edumazet@google.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4565af0d
checksum.h 3.89 KB