08/10/2021 09:13, fengchengwen:
> On 2021/10/6 18:26, Thomas Monjalon wrote:
> > 24/09/2021 12:53, Chengwen Feng:
> >> +++ b/lib/dmadev/rte_dmadev.h
> >> + * The dmadev are dynamically allocated by rte_dma_pmd_allocate() during 
> >> the
> >> + * PCI/SoC device probing phase performed at EAL initialization time. And 
> >> could
> >> + * be released by rte_dma_pmd_release() during the PCI/SoC device removing
> >> + * phase.
> > 
> > I don't think this text has value,
> > and we could imagine allocating a device ata later stage.
> 
> Yes, we could remove the stage descriptor because it's a well-known 
> knowledge, but I
> recommend keeping the rte_dma_pmd_allocate and rte_dma_pmd_release functions, 
> how about:
> 
>  * The dmadev are dynamically allocated by rte_dma_pmd_allocate(). And could
>  * be released by rte_dma_pmd_release().

These functions are for PMD.
This file is for applications, so it is not appropriate.

> > [...]
> >> + * Configure the maximum number of dmadevs.
> >> + * @note This function can be invoked before the primary process 
> >> rte_eal_init()
> >> + * to change the maximum number of dmadevs.
> > 
> > You should mention what is the default.
> > Is the default exported to the app in this file?
> 
> The default macro is RTE_DMADEV_DEFAULT_MAX_DEVS, and I place it at 
> rte_config.h.

No we avoid adding thinds in rte_config.h.
There should a static default which can be changed at runtime only.

> I think it's better to focus on one place (rte_config.h) than to modify 
> config in multiple places (e.g. rte_dmadev.h/rte_xxx.h).

Config is modified only in one place: the function.

> >> + *
> >> + * @param dev_max
> >> + *   maximum number of dmadevs.
> >> + *
> >> + * @return
> >> + *   0 on success. Otherwise negative value is returned.
> >> + */
> >> +__rte_experimental
> >> +int rte_dma_dev_max(size_t dev_max);
> > 
> > What about a function able to do more with the name rte_dma_init?
> > It should allocate the inter-process shared memory,
> > and do the lookup in case of secondary process.
> 
> Yes, we defined dma_data_prepare() which do above thing, it's in 4th patch.
> 
> Because we could not invoke some like allocate inter-process shared memory 
> before
> rte_eal_init, so I think it's better keep rte_dma_dev_max as it is.

Good point.

> >> +++ b/lib/dmadev/rte_dmadev_core.h
> >> +/**
> >> + * @file
> >> + *
> >> + * DMA Device internal header.
> >> + *
> >> + * This header contains internal data types, that are used by the DMA 
> >> devices
> >> + * in order to expose their ops to the class.
> >> + *
> >> + * Applications should not use these API directly.
> > 
> > If it is not part of the API, it should not be exposed at all.
> > Why not having all these stuff in a file dmadev_driver.h?
> > Is it used by some inline functions?
> 
> Yes, it's used by dataplane inline functions.

OK, please give this reason in the description.


Reply via email to