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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux