• Anton Blanchard's avatar
    powerpc: Optimise 64bit csum_partial · 9b83ecb0
    Anton Blanchard authored
    The main loop of csum_partial runs very slowly on recent POWER CPUs. After some
    analysis on both POWER6 and POWER7 I came up with routine below. First we get
    the source aligned to a double word, ignoring any odd alignment to keep things
    simple. Then we do 64 bytes at a time, with an entry and exit limb of a further
    64 bytes. On both POWER6 and POWER7 this should be as fast as we can go since
    we are limited by the latency of the adde instructions.
    
    To test this I forced checksumming on over loopback and ran socklib (a
    simple TCP benchmark). On a POWER6 575 throughput improved by 11% with
    this patch.
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    9b83ecb0
checksum_64.S 7.09 KB