Hi Akhil,

Please see inline.

Thanks,
Anoob

> -----Original Message-----
> From: Akhil Goyal <akhil.go...@nxp.com>
> Sent: Tuesday, October 1, 2019 6:35 PM
> To: Anoob Joseph <ano...@marvell.com>; Pablo de Lara
> <pablo.de.lara.gua...@intel.com>
> Cc: Kanaka Durga Kotamarthy <kkotamar...@marvell.com>; Jerin Jacob
> Kollanukkaran <jer...@marvell.com>; Narayana Prasad Raju Athreya
> <pathr...@marvell.com>; Fiona Trahe <fiona.tr...@intel.com>; Shally Verma
> <shal...@marvell.com>; Sunila Sahu <ss...@marvell.com>; dev@dpdk.org
> Subject: RE: [PATCH 4/8] common/cpt: add helper functions for asymmetric
> crypto
> 
> Hi Anoob,
> >
> > From: Kanaka Durga Kotamarthy <kkotamar...@marvell.com>
> >
> > Add helper functions to get meta len for asymmetric operations
> >
> > Signed-off-by: Anoob Joseph <ano...@marvell.com>
> > Signed-off-by: Kanaka Durga Kotamarthy <kkotamar...@marvell.com>
> > Signed-off-by: Sunila Sahu <ss...@marvell.com>
> > ---
> 
> <snip>
> 
> > diff --git a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
> > b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
> > index ad64bf4..0543494 100644
> > --- a/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
> > +++ b/drivers/crypto/octeontx/otx_cryptodev_hw_access.c
> > @@ -412,24 +412,34 @@ otx_cpt_metabuf_mempool_create(const struct
> > rte_cryptodev *dev,
> >                            int nb_elements)
> >  {
> >     char mempool_name[RTE_MEMPOOL_NAMESIZE];
> > -   int sg_mlen, lb_mlen, max_mlen, ret;
> >     struct cpt_qp_meta_info *meta_info;
> >     struct rte_mempool *pool;
> > +   int max_mlen = 0;
> > +   int sg_mlen = 0;
> > +   int lb_mlen = 0;
> > +   int ret;
> >
> > -   /* Get meta len for scatter gather mode */
> > -   sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode();
> > +   if (dev->feature_flags & RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO) {
> >
> > -   /* Extra 32B saved for future considerations */
> > -   sg_mlen += 4 * sizeof(uint64_t);
> > +           /* Get meta len for scatter gather mode */
> > +           sg_mlen = cpt_pmd_ops_helper_get_mlen_sg_mode();
> >
> > -   /* Get meta len for linear buffer (direct) mode */
> > -   lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode();
> > +           /* Extra 32B saved for future considerations */
> > +           sg_mlen += 4 * sizeof(uint64_t);
> >
> > -   /* Extra 32B saved for future considerations */
> > -   lb_mlen += 4 * sizeof(uint64_t);
> > +           /* Get meta len for linear buffer (direct) mode */
> > +           lb_mlen = cpt_pmd_ops_helper_get_mlen_direct_mode();
> >
> > -   /* Check max requirement for meta buffer */
> > -   max_mlen = RTE_MAX(lb_mlen, sg_mlen);
> > +           /* Extra 32B saved for future considerations */
> > +           lb_mlen += 4 * sizeof(uint64_t);
> > +
> > +           /* Check max requirement for meta buffer */
> > +           max_mlen = RTE_MAX(lb_mlen, sg_mlen);
> > +   } else if (dev->feature_flags &
> > RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) {
> > +
> > +           /* Get meta len for asymmetric operations */
> > +           max_mlen = cpt_pmd_ops_helper_asym_get_mlen();
> > +   }
> 
> I am not sure how this is working.
> In your octeontx device, you will have both
> RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO
> and RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO will be set together. So it will
> not go in else in any case.
> Please check in rest of the PMD also if this assumption is made somewhere else
> also.
> 

[Anoob] The crypto VFs on octeontx would be either sym/asym and cannot be both. 
Hence the above would work. But, you are right. In the above, it should be,

sym_lens = 0;
asym_lens = 0;

If (SYM) {
    /* set various lens for sym */
}

If (ASYM) {
    /* set various lens for asym */
}

len = MAX(sym_len, asym_len);

I'll make the required changes in v2. Hope this clarifies.
 
> >
> >     /* Allocate mempool */
> >
> > --
> > 2.7.4

Reply via email to