Skip to content
  • Joel A Fernandes's avatar
    crypto: omap-aes - Don't idle/start AES device between Encrypt operations · a3485e68
    Joel A Fernandes authored
    
    
    Calling runtime PM API for every block causes serious perf hit to
    crypto operations that are done on a long buffer.
    As crypto is performed on a page boundary, encrypting large buffers can
    cause a series of crypto operations divided by page. The runtime PM API
    is also called those many times.
    
    We call runtime_pm_get_sync only at beginning on the session (cra_init)
    and runtime_pm_put at the end. This result in upto a 50% speedup as below.
    This doesn't make the driver to keep the system awake as runtime get/put
    is only called during a crypto session which completes usually quickly.
    
    Before:
    root@beagleboard:~# time -v openssl speed -evp aes-128-cbc
    Doing aes-128-cbc for 3s on 16 size blocks: 13310 aes-128-cbc's in 0.01s
    Doing aes-128-cbc for 3s on 64 size blocks: 13040 aes-128-cbc's in 0.04s
    Doing aes-128-cbc for 3s on 256 size blocks: 9134 aes-128-cbc's in 0.03s
    Doing aes-128-cbc for 3s on 1024 size blocks: 8939 aes-128-cbc's in 0.01s
    Doing aes-128-cbc for 3s on 8192 size blocks: 4299 aes-128-cbc's in 0.00s
    
    After:
    root@beagleboard:~# time -v openssl speed -evp aes-128-cbc
    Doing aes-128-cbc for 3s on 16 size blocks: 18911 aes-128-cbc's in 0.02s
    Doing aes-128-cbc for 3s on 64 size blocks: 18878 aes-128-cbc's in 0.02s
    Doing aes-128-cbc for 3s on 256 size blocks: 11878 aes-128-cbc's in 0.10s
    Doing aes-128-cbc for 3s on 1024 size blocks: 11538 aes-128-cbc's in 0.05s
    Doing aes-128-cbc for 3s on 8192 size blocks: 4857 aes-128-cbc's in 0.03s
    
    While at it, also drop enter and exit pr_debugs, in related code. tracers
    can be used for that.
    
    Tested on a Beaglebone (AM335x SoC) board.
    
    Signed-off-by: default avatarJoel A Fernandes <joelagnel@ti.com>
    Acked-by: default avatarKevin Hilman <khilman@linaro.org>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    a3485e68