[v2,1/3] dmadev: hide devices array

Message ID 20211021125938.52401-1-fengchengwen@huawei.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [v2,1/3] dmadev: hide devices array |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Chengwen Feng Oct. 21, 2021, 12:59 p.m. UTC
  From: David Marchand <david.marchand@redhat.com>

No need to expose rte_dma_devices out of the dmadev library.
Existing helpers should be enough, and inlines make use of
rte_dma_fp_objs.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
Tested-by: Conor Walsh <conor.walsh@intel.com>
---
 app/test/test_dmadev.c      | 5 +++--
 lib/dmadev/rte_dmadev.c     | 2 +-
 lib/dmadev/rte_dmadev_pmd.h | 2 --
 lib/dmadev/version.map      | 1 -
 4 files changed, 4 insertions(+), 6 deletions(-)
  

Comments

Kevin Laatz Oct. 21, 2021, 2:03 p.m. UTC | #1
On 21/10/2021 13:59, Chengwen Feng wrote:
> From: David Marchand <david.marchand@redhat.com>
>
> No need to expose rte_dma_devices out of the dmadev library.
> Existing helpers should be enough, and inlines make use of
> rte_dma_fp_objs.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
> Tested-by: Conor Walsh <conor.walsh@intel.com>
> ---
>   app/test/test_dmadev.c      | 5 +++--
>   lib/dmadev/rte_dmadev.c     | 2 +-
>   lib/dmadev/rte_dmadev_pmd.h | 2 --
>   lib/dmadev/version.map      | 1 -
>   4 files changed, 4 insertions(+), 6 deletions(-)
>

Acked-by: Kevin Laatz <kevin.laatz@intel.com>
  
Radha Mohan Oct. 26, 2021, 6:04 a.m. UTC | #2
On Thu, Oct 21, 2021 at 7:04 AM Kevin Laatz <kevin.laatz@intel.com> wrote:
>
> On 21/10/2021 13:59, Chengwen Feng wrote:
> > From: David Marchand <david.marchand@redhat.com>
> >
> > No need to expose rte_dma_devices out of the dmadev library.
> > Existing helpers should be enough, and inlines make use of
> > rte_dma_fp_objs.

I asked this earlier and was asked to use rte_dma_devices[] array by Kevin.
Now that it has been made static is there a different way to get the
fp_obj->private_data from a PMD .remove function ?
I need the private data for DMA queue state cleanup.

> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
> > Tested-by: Conor Walsh <conor.walsh@intel.com>
> > ---
> >   app/test/test_dmadev.c      | 5 +++--
> >   lib/dmadev/rte_dmadev.c     | 2 +-
> >   lib/dmadev/rte_dmadev_pmd.h | 2 --
> >   lib/dmadev/version.map      | 1 -
> >   4 files changed, 4 insertions(+), 6 deletions(-)
> >
>
> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
  
Chengwen Feng Oct. 26, 2021, 6:20 a.m. UTC | #3
On 2021/10/26 14:04, Radha Mohan wrote:
> On Thu, Oct 21, 2021 at 7:04 AM Kevin Laatz <kevin.laatz@intel.com> wrote:
>>
>> On 21/10/2021 13:59, Chengwen Feng wrote:
>>> From: David Marchand <david.marchand@redhat.com>
>>>
>>> No need to expose rte_dma_devices out of the dmadev library.
>>> Existing helpers should be enough, and inlines make use of
>>> rte_dma_fp_objs.
> 
> I asked this earlier and was asked to use rte_dma_devices[] array by Kevin.
> Now that it has been made static is there a different way to get the
> fp_obj->private_data from a PMD .remove function ?
> I need the private data for DMA queue state cleanup.

PMD .remove function just call rte_dma_pmd_release() and it's will
invoke PMD .dev_close ops:
  rte_dma_pmd_release()
    --> rte_dma_close()
      --> PMD .dev_close ops

PMD could implemente cleanup in dev_close ops.

If the PMD want support multi-process, just make sure only the primary
could do really cleanup in the dev_close ops.

> 
>>>
>>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>>> Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>
>>> Tested-by: Conor Walsh <conor.walsh@intel.com>
>>> ---
>>>   app/test/test_dmadev.c      | 5 +++--
>>>   lib/dmadev/rte_dmadev.c     | 2 +-
>>>   lib/dmadev/rte_dmadev_pmd.h | 2 --
>>>   lib/dmadev/version.map      | 1 -
>>>   4 files changed, 4 insertions(+), 6 deletions(-)
>>>
>>
>> Acked-by: Kevin Laatz <kevin.laatz@intel.com>
> 
> .
>
  

Patch

diff --git a/app/test/test_dmadev.c b/app/test/test_dmadev.c
index 1e327bd45f..8b58256afc 100644
--- a/app/test/test_dmadev.c
+++ b/app/test/test_dmadev.c
@@ -747,10 +747,11 @@  test_dmadev_instance(int16_t dev_id)
 	};
 	const int vchan = 0;
 
+	rte_dma_info_get(dev_id, &info);
+
 	printf("\n### Test dmadev instance %u [%s]\n",
-			dev_id, rte_dma_devices[dev_id].data->dev_name);
+			dev_id, info.dev_name);
 
-	rte_dma_info_get(dev_id, &info);
 	if (info.max_vchans < 1)
 		ERR_RETURN("Error, no channels available on device id %u\n", dev_id);
 
diff --git a/lib/dmadev/rte_dmadev.c b/lib/dmadev/rte_dmadev.c
index 182d32aedb..d4b32b2971 100644
--- a/lib/dmadev/rte_dmadev.c
+++ b/lib/dmadev/rte_dmadev.c
@@ -18,7 +18,7 @@ 
 static int16_t dma_devices_max;
 
 struct rte_dma_fp_object *rte_dma_fp_objs;
-struct rte_dma_dev *rte_dma_devices;
+static struct rte_dma_dev *rte_dma_devices;
 static struct {
 	/* Hold the dev_max information of the primary process. This field is
 	 * set by the primary process and is read by the secondary process.
diff --git a/lib/dmadev/rte_dmadev_pmd.h b/lib/dmadev/rte_dmadev_pmd.h
index b97b5bf10b..5316ad5b5f 100644
--- a/lib/dmadev/rte_dmadev_pmd.h
+++ b/lib/dmadev/rte_dmadev_pmd.h
@@ -131,8 +131,6 @@  struct rte_dma_dev {
 	uint64_t reserved[2]; /**< Reserved for future fields. */
 } __rte_cache_aligned;
 
-extern struct rte_dma_dev *rte_dma_devices;
-
 /**
  * @internal
  * Allocate a new dmadev slot for an DMA device and return the pointer to that
diff --git a/lib/dmadev/version.map b/lib/dmadev/version.map
index ef561acd46..89f7a5b1d3 100644
--- a/lib/dmadev/version.map
+++ b/lib/dmadev/version.map
@@ -30,7 +30,6 @@  EXPERIMENTAL {
 INTERNAL {
 	global:
 
-	rte_dma_devices;
 	rte_dma_fp_objs;
 	rte_dma_pmd_allocate;
 	rte_dma_pmd_release;