• Anton Blanchard's avatar
    powerpc: Optimise 64bit csum_partial_copy_generic and add csum_and_copy_from_user · fdd374b6
    Anton Blanchard authored
    We use the same core loop as the new csum_partial, adding in the
    stores and exception handling code. To keep things simple we do all the
    exception fixup in csum_and_copy_from_user. This wrapper function is
    modelled on the generic checksum code and is careful to always calculate
    a complete checksum even if we only copied part of the data to userspace.
    
    To test this I forced checksumming on over loopback and ran socklib (a
    simple TCP benchmark). On a POWER6 575 throughput improved by 19% with
    this patch. If I forced both the sender and receiver onto the same cpu
    (with the hope of shifting the benchmark from being cache bandwidth limited
    to cpu limited), adding this patch improved performance by 55%
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    fdd374b6
checksum_wrappers_64.c 1.66 KB