• Roxana Nicolescu's avatar
    crypto: x86/sha - load modules based on CPU features · 1c43c0f1
    Roxana Nicolescu authored
    x86 optimized crypto modules are built as modules rather than build-in and
    they are not loaded when the crypto API is initialized, resulting in the
    generic builtin module (sha1-generic) being used instead.
    
    It was discovered when creating a sha1/sha256 checksum of a 2Gb file by
    using kcapi-tools because it would take significantly longer than creating
    a sha512 checksum of the same file. trace-cmd showed that for sha1/256 the
    generic module was used, whereas for sha512 the optimized module was used
    instead.
    
    Add module aliases() for these x86 optimized crypto modules based on CPU
    feature bits so udev gets a chance to load them later in the boot
    process. This resulted in ~3x decrease in the real-time execution of
    kcapi-dsg.
    
    Fix is inspired from commit
    aa031b8f ("crypto: x86/sha512 - load based on CPU features")
    where a similar fix was done for sha512.
    
    Cc: stable@vger.kernel.org # 5.15+
    Suggested-by: default avatarDimitri John Ledkov <dimitri.ledkov@canonical.com>
    Suggested-by: default avatarJulian Andres Klode <julian.klode@canonical.com>
    Signed-off-by: default avatarRoxana Nicolescu <roxana.nicolescu@canonical.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    1c43c0f1
sha1_ssse3_glue.c 8.51 KB