mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
crypto: caam/qi - optimize frame queue cleanup
Add reference counter incremented for each frame enqueued in CAAM and replace unconditional sleep in empty_caam_fq() with polling the reference counter. When CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y boot time on LS1043A platform with this optimization decreases from ~1100s to ~11s. Signed-off-by: Valentin Ciocoi Radulescu <valentin.ciocoi@nxp.com> Reviewed-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
committed by
Herbert Xu
parent
21f802cc98
commit
11144416a7
@@ -3,7 +3,7 @@
|
||||
* Public definitions for the CAAM/QI (Queue Interface) backend.
|
||||
*
|
||||
* Copyright 2013-2016 Freescale Semiconductor, Inc.
|
||||
* Copyright 2016-2017 NXP
|
||||
* Copyright 2016-2017, 2020 NXP
|
||||
*/
|
||||
|
||||
#ifndef __QI_H__
|
||||
@@ -52,6 +52,7 @@ enum optype {
|
||||
* @context_a: shared descriptor dma address
|
||||
* @req_fq: to-CAAM request frame queue
|
||||
* @rsp_fq: from-CAAM response frame queue
|
||||
* @refcnt: reference counter incremented for each frame enqueued in to-CAAM FQ
|
||||
* @cpu: cpu on which to receive CAAM response
|
||||
* @op_type: operation type
|
||||
* @qidev: device pointer for CAAM/QI backend
|
||||
@@ -62,6 +63,7 @@ struct caam_drv_ctx {
|
||||
dma_addr_t context_a;
|
||||
struct qman_fq *req_fq;
|
||||
struct qman_fq *rsp_fq;
|
||||
refcount_t refcnt;
|
||||
int cpu;
|
||||
enum optype op_type;
|
||||
struct device *qidev;
|
||||
|
||||
Reference in New Issue
Block a user