[PATCH 0/7] Chain crypto requests together at the DMA level

Romain Perier romain.perier at free-electrons.com
Wed Jun 15 12:15:27 PDT 2016


The Cryptographic Engines and Security Accelerators (CESA) supports
the TDMA chained mode support. When this mode is enabled and crypto
requests are chained at the DMA level, multiple crypto requests can be
handled by the hardware engine without requiring any software
intervention. This approach limits the number of interrupts generated
by the engines thus improving its throughput and making the whole system
behave nicely under heavy crypto load.

Benchmarking results with dmcrypt
=================================
		I/O read	I/O write
Before		81.7 MB/s	31.7 MB/s
After		129  MB/s	39.8 MB/s

Improvement	+57.8 %		+25.5 %



Romain Perier (7):
  crypto: marvell: Add a macro constant for the size of the crypto queue
  crypto: marvell: Check engine is not already running when enabling a
    req
  crypto: marvell: Copy IV vectors by DMA transfers for acipher requests
  crypto: marvell: Moving the tdma chain out of mv_cesa_tdma_req
  crypto: marvell: Adding a complete operation for async requests
  crypto: marvell: Adding load balancing between engines
  crypto: marvell: Add support for chaining crypto requests in TDMA mode

 drivers/crypto/marvell/cesa.c   | 142 ++++++++++++++++++++++++++++++----------
 drivers/crypto/marvell/cesa.h   | 103 +++++++++++++++++++++++------
 drivers/crypto/marvell/cipher.c | 141 +++++++++++++++++++++++----------------
 drivers/crypto/marvell/hash.c   | 126 +++++++++++++++++------------------
 drivers/crypto/marvell/tdma.c   | 120 +++++++++++++++++++++++++++++++--
 5 files changed, 452 insertions(+), 180 deletions(-)

-- 
2.7.4




More information about the linux-arm-kernel mailing list