[dpdk-dev] [PATCH] examples/ipsec-secgw: fix session mempool initialisation
Akhil Goyal
akhil.goyal at nxp.com
Thu Oct 29 16:06:32 CET 2020
> Hi Akhil,
>
> On 28/10/2020 12:30, Akhil Goyal wrote:
> > Hi Vladimir,
> >
> >> -----Original Message-----
> >> From: Vladimir Medvedkin <vladimir.medvedkin at intel.com>
> >> Sent: Tuesday, October 27, 2020 7:34 PM
> >> To: dev at dpdk.org
> >> Cc: Akhil Goyal <akhil.goyal at nxp.com>; Radu Nicolau
> <radu.nicolau at intel.com>
> >> Subject: [PATCH] examples/ipsec-secgw: fix session mempool initialisation
> >>
> >> Creation of a session mempool may fail in the case of a single lcore
> >> and a low number of SA.
> >>
> >
> > I am not able to understand the reason why the number need to be increased.
> > Could you please explain?
> >
>
> Sure. Starting ipsec-secgw with 4 configured SA with single lcore fails
> with:
>
> CRYPTODEV: rte_cryptodev_sym_session_pool_create() line 1420:
> rte_cryptodev_sym_session_pool_create(name=sess_mp_0) failed,
> rte_errno=22
>
> In case when there is only one lcore and number of configures SA less
> then (0.5 * CDEV_MP_CACHE_SZ) then creation of the mempool fails with
> EINVAL. This is because the number of requested items is less than
> (cache size * 1.5)
>
> from rte_mempool_create_empty():
>
> /* asked cache too big */
> if (cache_size > RTE_MEMPOOL_CACHE_MAX_SIZE ||
> CALC_CACHE_FLUSHTHRESH(cache_size) > n) {
> rte_errno = EINVAL;
> return NULL;
> }
>
> , where n is nb_sess and CALC_CACHE_FLUSHTHRESH(cache_size) is just (1.5
> * cache_size). This was mentioned in rte_mempool_create() documentation:
> @param cache_size
> ...
> * This argument must be lower or equal to
> * RTE_MEMPOOL_CACHE_MAX_SIZE and n / 1.5.
> ...
>
Applied to dpdk-next-crypto
Patch description updated as per the explanation.
Acked-by: Akhil Goyal <akhil.goyal at nxp.com>
Thanks.
More information about the dev
mailing list