• Mark Salyzyn's avatar
    arm64: Avoid aligning normal memory pointers in __memcpy_{to,from}io · 9ca255bf
    Mark Salyzyn authored
    __memcpy_{to,from}io fall back to byte-at-a-time copying if both the
    source and destination pointers are not 8-byte aligned. Since one of the
    pointers always points at normal memory, this is unnecessary and
    detrimental to performance, so only do byte copying until we hit an 8-byte
    boundary for the device pointer.
    
    This change was motivated by performance issues in the pstore driver.
    On a test platform, measuring probe time for pstore, console buffer
    size of 1/4MB and pmsg of 1/2MB, was in the 90-107ms region. Change
    managed to reduce it to 10-25ms, an improvement in boot time.
    
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Anton Vorontsov <anton@enomsg.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Anton Vorontsov <anton@enomsg.org>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarMark Salyzyn <salyzyn@android.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    9ca255bf
io.c 2.09 KB