• Ard Biesheuvel's avatar
    crypto: arm64/ghash-ce - replace NEON yield check with block limit · 8e492eff
    Ard Biesheuvel authored
    Checking the TIF_NEED_RESCHED flag is disproportionately costly on cores
    with fast crypto instructions and comparatively slow memory accesses.
    
    On algorithms such as GHASH, which executes at ~1 cycle per byte on
    cores that implement support for 64 bit polynomial multiplication,
    there is really no need to check the TIF_NEED_RESCHED particularly
    often, and so we can remove the NEON yield check from the assembler
    routines.
    
    However, unlike the AEAD or skcipher APIs, the shash/ahash APIs take
    arbitrary input lengths, and so there needs to be some sanity check
    to ensure that we don't hog the CPU for excessive amounts of time.
    
    So let's simply cap the maximum input size that is processed in one go
    to 64 KB.
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    8e492eff
ghash-ce-core.S 10.4 KB