[PATCH v2] lib/dmadev: get DMA device using device ID
fengchengwen
fengchengwen at huawei.com
Fri Feb 9 09:18:41 CET 2024
Hi Thomas,
On 2024/2/9 0:25, Thomas Monjalon wrote:
> 19/12/2023 12:00, Amit Prakash Shukla:
>> +struct rte_dma_dev *
>> +rte_dma_pmd_get_dev_by_id(const int dev_id)
> const does not make sense here for an int parameter.
I think it could be OK with const even if the parameter is not pointer.
However, most DPDK APIs do not have const for simple types (e.g.
int/uin16_t).
In this aspect, I think it's also OK to remove const of here for
consistency.
>
>> +{
>> + if (!rte_dma_is_valid(dev_id))
>> + return NULL;
>> +
>> + return &rte_dma_devices[dev_id];
>> +}
> [...]
>> +/**
>> + * @internal
>> + * Get the rte_dma_dev structure device pointer for the device id.
>> + *
>> + * @param dev_id
>> + * Device ID value to select the device structure.
> This comment is not explanatory.
> What is an ID? Where does it come from?
> Where can we see such ID for DMA device?
This new API is used in the event-dma driver of cnxk [1]:
The rte_event_dma_adapter_vchan_add has parameter of dma_dev_id, and it then
invoke (*dev->dev_ops->dma_adapter_vchan_add)(dev, dma_dev_id, vchan,
event),
at cnxk driver, this ops will check whether the DMA is
cnxk_dmadev_pci_driver.
I think this is because the cnxk's event-and-dma implement has deep coupling
(because the cnxk's event device could interact with another vendor's
dma device).
Maybe we should think of a better way to solve this kind of coupling
problem.
Thanks
[1]
https://patches.dpdk.org/project/dpdk/patch/20231208082835.2817601-3-amitprakashs@marvell.com/
>
>> + *
>> + * @return
>> + * - rte_dma_dev structure pointer for the given device ID on success, NULL
>> + * otherwise.
>> + */
>> +__rte_internal
>> +struct rte_dma_dev *rte_dma_pmd_get_dev_by_id(const int dev_id);
> Again, const does not make sense here.
>
> Chengwen, please can you comment this patch as you maintain dmadev?
>
>
More information about the dev
mailing list