[v1] eventdev/crypto: refactor circular buffer size
Checks
Commit Message
In case of CRYPTO_ADAPTER_OPS_BUFFER_SZ is modified,
eca_circular_buffer_space_for_batch() also needs to be updated
to check maximum number of crypto ops can be accommodated in
circular buffer when CPM becomes busy.
Defined MAX_OPS_IN_BUFFER which contains size for batch of dequeued events
and redefined CRYPTO_ADAPTER_OPS_BUFFER_SZ in terms of MAX_OPS_IN_BUFFER.
This patch makes eca_circular_buffer_space_for_batch() independent of
circular buffer changes.
Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
Comments
> -----Original Message-----
> From: Kundapura, Ganapati <ganapati.kundapura@intel.com>
> Sent: Tuesday, April 18, 2023 2:46 PM
> To: jerinj@marvell.com; Gujjar, Abhinandan S
> <abhinandan.gujjar@intel.com>; dev@dpdk.org
> Cc: Naga Harish K, S V <s.v.naga.harish.k@intel.com>; Jayatheerthan, Jay
> <jay.jayatheerthan@intel.com>
> Subject: [PATCH v1] eventdev/crypto: refactor circular buffer size
>
> In case of CRYPTO_ADAPTER_OPS_BUFFER_SZ is modified,
> eca_circular_buffer_space_for_batch() also needs to be updated to check
> maximum number of crypto ops can be accommodated in circular buffer
> when CPM becomes busy.
>
> Defined MAX_OPS_IN_BUFFER which contains size for batch of dequeued
> events and redefined CRYPTO_ADAPTER_OPS_BUFFER_SZ in terms of
> MAX_OPS_IN_BUFFER.
>
> This patch makes eca_circular_buffer_space_for_batch() independent of
> circular buffer changes.
>
> Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
>
> diff --git a/lib/eventdev/rte_event_crypto_adapter.c
> b/lib/eventdev/rte_event_crypto_adapter.c
> index f6c1e53..52a28e5 100644
> --- a/lib/eventdev/rte_event_crypto_adapter.c
> +++ b/lib/eventdev/rte_event_crypto_adapter.c
> @@ -25,7 +25,14 @@
> #define CRYPTO_ADAPTER_MEM_NAME_LEN 32
> #define CRYPTO_ADAPTER_MAX_EV_ENQ_RETRIES 100
>
> -#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (BATCH_SIZE + BATCH_SIZE)
> +/* MAX_OPS_IN_BUFFER contains size for batch of dequeued events */
> +#define MAX_OPS_IN_BUFFER BATCH_SIZE
> +
> +/* CRYPTO_ADAPTER_OPS_BUFFER_SZ to accommodate
> MAX_OPS_IN_BUFFER +
> + * additional space for one batch
> + */
> +#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (MAX_OPS_IN_BUFFER +
> BATCH_SIZE)
> +
> #define CRYPTO_ADAPTER_BUFFER_SZ 1024
>
> /* Flush an instance's enqueue buffers every
> CRYPTO_ENQ_FLUSH_THRESHOLD @@ -188,7 +195,8 @@
> eca_circular_buffer_batch_ready(struct crypto_ops_circular_buffer *bufp)
> static inline bool eca_circular_buffer_space_for_batch(struct
> crypto_ops_circular_buffer *bufp) {
> - return (bufp->size - bufp->count) >= BATCH_SIZE;
> + /* circular buffer can have atmost MAX_OPS_IN_BUFFER */
> + return (bufp->size - bufp->count) >= MAX_OPS_IN_BUFFER;
> }
>
> static inline void
> --
> 2.6.4
On Wed, May 17, 2023 at 10:23 AM Gujjar, Abhinandan S
<abhinandan.gujjar@intel.com> wrote:
>
>
> > -----Original Message-----
> > From: Kundapura, Ganapati <ganapati.kundapura@intel.com>
> > Sent: Tuesday, April 18, 2023 2:46 PM
> > To: jerinj@marvell.com; Gujjar, Abhinandan S
> > <abhinandan.gujjar@intel.com>; dev@dpdk.org
> > Cc: Naga Harish K, S V <s.v.naga.harish.k@intel.com>; Jayatheerthan, Jay
> > <jay.jayatheerthan@intel.com>
> > Subject: [PATCH v1] eventdev/crypto: refactor circular buffer size
> >
> > In case of CRYPTO_ADAPTER_OPS_BUFFER_SZ is modified,
> > eca_circular_buffer_space_for_batch() also needs to be updated to check
> > maximum number of crypto ops can be accommodated in circular buffer
> > when CPM becomes busy.
> >
> > Defined MAX_OPS_IN_BUFFER which contains size for batch of dequeued
> > events and redefined CRYPTO_ADAPTER_OPS_BUFFER_SZ in terms of
> > MAX_OPS_IN_BUFFER.
> >
> > This patch makes eca_circular_buffer_space_for_batch() independent of
> > circular buffer changes.
> >
> > Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com>
>
> Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
Applied to dpdk-next-net-eventdev/for-main. Thanks
>
> >
> > diff --git a/lib/eventdev/rte_event_crypto_adapter.c
> > b/lib/eventdev/rte_event_crypto_adapter.c
> > index f6c1e53..52a28e5 100644
> > --- a/lib/eventdev/rte_event_crypto_adapter.c
> > +++ b/lib/eventdev/rte_event_crypto_adapter.c
> > @@ -25,7 +25,14 @@
> > #define CRYPTO_ADAPTER_MEM_NAME_LEN 32
> > #define CRYPTO_ADAPTER_MAX_EV_ENQ_RETRIES 100
> >
> > -#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (BATCH_SIZE + BATCH_SIZE)
> > +/* MAX_OPS_IN_BUFFER contains size for batch of dequeued events */
> > +#define MAX_OPS_IN_BUFFER BATCH_SIZE
> > +
> > +/* CRYPTO_ADAPTER_OPS_BUFFER_SZ to accommodate
> > MAX_OPS_IN_BUFFER +
> > + * additional space for one batch
> > + */
> > +#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (MAX_OPS_IN_BUFFER +
> > BATCH_SIZE)
> > +
> > #define CRYPTO_ADAPTER_BUFFER_SZ 1024
> >
> > /* Flush an instance's enqueue buffers every
> > CRYPTO_ENQ_FLUSH_THRESHOLD @@ -188,7 +195,8 @@
> > eca_circular_buffer_batch_ready(struct crypto_ops_circular_buffer *bufp)
> > static inline bool eca_circular_buffer_space_for_batch(struct
> > crypto_ops_circular_buffer *bufp) {
> > - return (bufp->size - bufp->count) >= BATCH_SIZE;
> > + /* circular buffer can have atmost MAX_OPS_IN_BUFFER */
> > + return (bufp->size - bufp->count) >= MAX_OPS_IN_BUFFER;
> > }
> >
> > static inline void
> > --
> > 2.6.4
>
@@ -25,7 +25,14 @@
#define CRYPTO_ADAPTER_MEM_NAME_LEN 32
#define CRYPTO_ADAPTER_MAX_EV_ENQ_RETRIES 100
-#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (BATCH_SIZE + BATCH_SIZE)
+/* MAX_OPS_IN_BUFFER contains size for batch of dequeued events */
+#define MAX_OPS_IN_BUFFER BATCH_SIZE
+
+/* CRYPTO_ADAPTER_OPS_BUFFER_SZ to accommodate MAX_OPS_IN_BUFFER +
+ * additional space for one batch
+ */
+#define CRYPTO_ADAPTER_OPS_BUFFER_SZ (MAX_OPS_IN_BUFFER + BATCH_SIZE)
+
#define CRYPTO_ADAPTER_BUFFER_SZ 1024
/* Flush an instance's enqueue buffers every CRYPTO_ENQ_FLUSH_THRESHOLD
@@ -188,7 +195,8 @@ eca_circular_buffer_batch_ready(struct crypto_ops_circular_buffer *bufp)
static inline bool
eca_circular_buffer_space_for_batch(struct crypto_ops_circular_buffer *bufp)
{
- return (bufp->size - bufp->count) >= BATCH_SIZE;
+ /* circular buffer can have atmost MAX_OPS_IN_BUFFER */
+ return (bufp->size - bufp->count) >= MAX_OPS_IN_BUFFER;
}
static inline void