On Fri, 24 May 2024 at 18:20, Akhil Goyal <gak...@marvell.com> wrote:
>
> > > > +static int
> > > > +uadk_compress_pmd_config(struct rte_compressdev *dev,
> > > > +                      struct rte_compressdev_config *config)
> > > > +{
> > > > +     char mp_name[RTE_MEMPOOL_NAMESIZE];
> > > > +     struct uadk_compress_priv *priv;
> > > > +     struct rte_mempool *mp;
> > > > +     int ret;
> > > > +
> > > > +     if (dev == NULL || config == NULL)
> > > > +             return -EINVAL;
> > > > +
> > > > +     snprintf(mp_name, RTE_MEMPOOL_NAMESIZE,
> > > > +              "stream_mp_%u", dev->data->dev_id);
> > > > +     priv = dev->data->dev_private;
> > > > +
> > > > +     /* alloc resources */
> > > > +     ret = wd_comp_env_init(NULL);
> > > > +     if (ret < 0)
> > > > +             return -EINVAL;
> > > > +
> > > > +     mp = priv->mp;
> > > > +     if (mp == NULL) {
> > > > +             mp = rte_mempool_create(mp_name,
> > > > +                                     config->max_nb_priv_xforms +
> > > > +                                     config->max_nb_streams,
> > > > +                                     sizeof(struct uadk_stream),
> > > > +                                     0, 0, NULL, NULL, NULL,
> > > > +                                     NULL, config->socket_id, 0);
> > > > +             if (mp == NULL) {
> > > > +                     UADK_LOG(ERR, "Cannot create private xform pool on
> > > > socket %d\n",
> > > > +                              config->socket_id);
> > > > +                     ret = -ENOMEM;
> > > > +                     goto err_mempool;
> > > > +             }
> > > > +             priv->mp = mp;
> > > > +     }
> > >
> > > Do you really need a mempool here? It is for uadk_stream which is just 
> > > struct of
> > pointer and an enum.
> > > It can simply be rte_malloc.
> > > And even you do not need uadk_compress_priv.
> > > This can be simplified. Right?
> >
> > Yes, good idea, this can be simplified, and can remove
> > uadk_compress_priv as well.
> >
> > But it looks like rte_compressdev_pmd_create requires the priv data,
> > otherwise it will return an error if private_data_size == 0.
> > Could rte_compressdev_pmd_create be changed only alloc
> > compressdev->data->dev_private only if data_size != 0.
> >
> > Or I am checking whether to simply add one priv.
>
> Normally, each PMD need some priv space.
> Even you can also add capabilities in it instead of having global variable.

Yes, understand.

>
> >
> > >
> > > Also remove the execution part of documentation from 1/3 and add it in 3/3
> > > Since the PMD is complete in 3/3, release notes and execution part of
> > documentation should be in last patch.
> > OK.
> >
> > One more question,
> > rte_compressdev_pmd_init_params does not have .max_nb_queue_pairs as
> > rte_cryptodev_pmd_init_params.
> > So dpdk-test-compress-perf  will use 128 queues by default, except
> > adding -l 1,2.
> > Is this expected?
> >
> rte_compressdev_pmd_init_params is internal for PMD-lib interaction and 
> should not be used by app.
> For application, rte_compressdev_info should be used and it has that 
> max_nb_queue_pairs.
>

Is there a method to configure the max_nb_queue_pairs?
Seems not workable to use RTE_PMD_REGISTER_PARAM_STRING like crypto,
which only sets the init_params, which has no member.
Or have to use a fixed value?

Thanks

Reply via email to