[1/2] dmadev: hide devices array

Message ID 20211020065944.19617-1-david.marchand@redhat.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series [1/2] dmadev: hide devices array |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

David Marchand Oct. 20, 2021, 6:59 a.m. UTC
  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>
---
 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

Chengwen Feng Oct. 20, 2021, 9:47 a.m. UTC | #1
On 2021/10/20 14:59, David Marchand wrote:
> 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>
> ---
>  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(-)
> 
> 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);

suggest declare info as: struct rte_dma_stats info = { 0 };
so that the following %s will display NULL if rte_dma_info_get call fail.

anyway,
Reviewed-by: Chengwen Feng <fengchengwen@huawei.com>

> +
>  	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

[snip]
  
David Marchand Oct. 20, 2021, 9:55 a.m. UTC | #2
On Wed, Oct 20, 2021 at 11:47 AM fengchengwen <fengchengwen@huawei.com> wrote:
>
> On 2021/10/20 14:59, David Marchand wrote:
> > 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>
> > ---
> >  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(-)
> >
> > 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);
>
> suggest declare info as: struct rte_dma_stats info = { 0 };
> so that the following %s will display NULL if rte_dma_info_get call fail.

The problem is more generic.
Other info fields are used by the test.
If rte_dma_info_get can fail, its return code must be checked.

Worth a followup patch, can you send it?

Thanks.
  
Conor Walsh Oct. 20, 2021, 10:01 a.m. UTC | #3
> Subject: [dpdk-dev] [PATCH 1/2] dmadev: hide devices array
> 
> 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>
> ---

The devices array is not needed by the drivers.

From a drivers point of view:
Tested-by: Conor Walsh <conor.walsh@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;