linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/10] crypto: sun8i-ce - implement request batching
@ 2025-06-26  9:58 Ovidiu Panait
  2025-06-26  9:58 ` [PATCH v2 01/10] crypto: sun8i-ce - remove channel timeout field Ovidiu Panait
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Ovidiu Panait @ 2025-06-26  9:58 UTC (permalink / raw)
  To: clabbe.montjoie, herbert, davem, linux-crypto
  Cc: wens, jernej.skrabec, samuel, linux-arm-kernel, linux-sunxi,
	linux-kernel, Ovidiu Panait

The Allwinner crypto engine can process multiple requests at a time,
if they are chained together using the task descriptor's 'next' field.
Having multiple requests processed in one go can reduce the number
of interrupts generated and also improve throughput.

When compared to the existing non-batching implementation, the tcrypt
multibuffer benchmark shows an increase in throughput of ~85% for 16 byte
AES blocks (when testing with 8 data streams on the OrangePi Zero2 board).

Patches 1-9 perform refactoring work on the existing do_one_request()
callbacks, to make them more modular and easier to integrate with the
request batching workflow.

Patch 10 implements the actual request batching.

Changes in v2:
   - fixed [-Wformat-truncation=] warning reported by kernel test robot


Ovidiu Panait (10):
  crypto: sun8i-ce - remove channel timeout field
  crypto: sun8i-ce - remove boilerplate in sun8i_ce_hash_digest()
  crypto: sun8i-ce - move bounce_iv and backup_iv to request context
  crypto: sun8i-ce - save hash buffers and dma info to request context
  crytpo: sun8i-ce - factor out prepare/unprepare code from ahash
    do_one_request
  crypto: sun8i-ce - fold sun8i_ce_cipher_run() into
    sun8i_ce_cipher_do_one()
  crypto: sun8i-ce - pass task descriptor to cipher prepare/unprepare
  crypto: sun8i-ce - factor out public versions of finalize request
  crypto: sun8i-ce - add a new function for dumping task descriptors
  crypto: sun8i-ce - implement request batching

 .../allwinner/sun8i-ce/sun8i-ce-cipher.c      |  90 +++++------
 .../crypto/allwinner/sun8i-ce/sun8i-ce-core.c | 152 ++++++++++++++----
 .../crypto/allwinner/sun8i-ce/sun8i-ce-hash.c | 140 +++++++++-------
 .../crypto/allwinner/sun8i-ce/sun8i-ce-prng.c |   1 -
 .../crypto/allwinner/sun8i-ce/sun8i-ce-trng.c |   1 -
 drivers/crypto/allwinner/sun8i-ce/sun8i-ce.h  |  84 +++++++++-
 6 files changed, 327 insertions(+), 141 deletions(-)

-- 
2.49.0



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2025-07-10  9:17 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-26  9:58 [PATCH v2 00/10] crypto: sun8i-ce - implement request batching Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 01/10] crypto: sun8i-ce - remove channel timeout field Ovidiu Panait
2025-07-08 12:58   ` Corentin Labbe
2025-06-26  9:58 ` [PATCH v2 02/10] crypto: sun8i-ce - remove boilerplate in sun8i_ce_hash_digest() Ovidiu Panait
2025-07-08 14:04   ` Corentin Labbe
2025-06-26  9:58 ` [PATCH v2 03/10] crypto: sun8i-ce - move bounce_iv and backup_iv to request context Ovidiu Panait
2025-07-08 18:36   ` Corentin Labbe
2025-07-08 20:08     ` Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 04/10] crypto: sun8i-ce - save hash buffers and dma info " Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 05/10] crytpo: sun8i-ce - factor out prepare/unprepare code from ahash do_one_request Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 06/10] crypto: sun8i-ce - fold sun8i_ce_cipher_run() into sun8i_ce_cipher_do_one() Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 07/10] crypto: sun8i-ce - pass task descriptor to cipher prepare/unprepare Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 08/10] crypto: sun8i-ce - factor out public versions of finalize request Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 09/10] crypto: sun8i-ce - add a new function for dumping task descriptors Ovidiu Panait
2025-06-26  9:58 ` [PATCH v2 10/10] crypto: sun8i-ce - implement request batching Ovidiu Panait
2025-06-29 18:37 ` [PATCH v2 00/10] " Corentin Labbe
2025-07-10  8:12 ` Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).