diff mbox series

[08/59] drm/ttm: export memory type debug entrypoint.

Message ID 20200804025632.3868079-9-airlied@gmail.com (mailing list archive)
State New, archived
Headers show
Series ttm misc cleanups, mem refactoring, rename objects. (v2) | expand

Commit Message

Dave Airlie Aug. 4, 2020, 2:55 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

As suggested on review, just export the memory type debug for
drivers to use, while also making the debug callback optional
(don't need to test for system as it won't init it).

rename it to be more consistent with object name for now.
(we may rename all the objects later.)

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/ttm/ttm_bo.c    | 13 +++++++------
 include/drm/ttm/ttm_bo_driver.h |  8 ++++++++
 2 files changed, 15 insertions(+), 6 deletions(-)

Comments

Christian König Aug. 4, 2020, 10:35 a.m. UTC | #1
Am 04.08.20 um 04:55 schrieb Dave Airlie:
> From: Dave Airlie <airlied@redhat.com>
>
> As suggested on review, just export the memory type debug for
> drivers to use, while also making the debug callback optional
> (don't need to test for system as it won't init it).
>
> rename it to be more consistent with object name for now.
> (we may rename all the objects later.)
>
> Signed-off-by: Dave Airlie <airlied@redhat.com>

Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/ttm/ttm_bo.c    | 13 +++++++------
>   include/drm/ttm/ttm_bo_driver.h |  8 ++++++++
>   2 files changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 2b49037231eb..2ac70ec1f37d 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -77,26 +77,26 @@ static inline int ttm_mem_type_from_place(const struct ttm_place *place,
>   	return 0;
>   }
>   
> -static void ttm_mem_type_debug(struct ttm_bo_device *bdev, struct drm_printer *p,
> -			       int mem_type)
> +void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
> +				struct drm_printer *p)
>   {
> -	struct ttm_mem_type_manager *man = &bdev->man[mem_type];
> -
>   	drm_printf(p, "    has_type: %d\n", man->has_type);
>   	drm_printf(p, "    use_type: %d\n", man->use_type);
>   	drm_printf(p, "    use_tt: %d\n", man->use_tt);
>   	drm_printf(p, "    size: %llu\n", man->size);
>   	drm_printf(p, "    available_caching: 0x%08X\n", man->available_caching);
>   	drm_printf(p, "    default_caching: 0x%08X\n", man->default_caching);
> -	if (mem_type != TTM_PL_SYSTEM)
> +	if (man->func && man->func->debug)
>   		(*man->func->debug)(man, p);
>   }
> +EXPORT_SYMBOL(ttm_mem_type_manager_debug);
>   
>   static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
>   					struct ttm_placement *placement)
>   {
>   	struct drm_printer p = drm_debug_printer(TTM_PFX);
>   	int i, ret, mem_type;
> +	struct ttm_mem_type_manager *man;
>   
>   	drm_printf(&p, "No space for %p (%lu pages, %luK, %luM)\n",
>   		   bo, bo->mem.num_pages, bo->mem.size >> 10,
> @@ -108,7 +108,8 @@ static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
>   			return;
>   		drm_printf(&p, "  placement[%d]=0x%08X (%d)\n",
>   			   i, placement->placement[i].flags, mem_type);
> -		ttm_mem_type_debug(bo->bdev, &p, mem_type);
> +		man = &bo->bdev->man[mem_type];
> +		ttm_mem_type_manager_debug(man, &p);
>   	}
>   }
>   
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index 7958e411269a..73f5d9c766cc 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -795,4 +795,12 @@ pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);
>   
>   extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
>   
> +/**
> + * ttm_mem_type_manager_debug
> + *
> + * @man: manager type to dump.
> + * @p: printer to use for debug.
> + */
> +void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
> +				struct drm_printer *p);
>   #endif
Ben Skeggs Aug. 5, 2020, 5:34 a.m. UTC | #2
On Tue, 4 Aug 2020 at 20:35, Christian König <christian.koenig@amd.com> wrote:
>
> Am 04.08.20 um 04:55 schrieb Dave Airlie:
> > From: Dave Airlie <airlied@redhat.com>
> >
> > As suggested on review, just export the memory type debug for
> > drivers to use, while also making the debug callback optional
> > (don't need to test for system as it won't init it).
> >
> > rename it to be more consistent with object name for now.
> > (we may rename all the objects later.)
> >
> > Signed-off-by: Dave Airlie <airlied@redhat.com>
>
> Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>

>
> > ---
> >   drivers/gpu/drm/ttm/ttm_bo.c    | 13 +++++++------
> >   include/drm/ttm/ttm_bo_driver.h |  8 ++++++++
> >   2 files changed, 15 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> > index 2b49037231eb..2ac70ec1f37d 100644
> > --- a/drivers/gpu/drm/ttm/ttm_bo.c
> > +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> > @@ -77,26 +77,26 @@ static inline int ttm_mem_type_from_place(const struct ttm_place *place,
> >       return 0;
> >   }
> >
> > -static void ttm_mem_type_debug(struct ttm_bo_device *bdev, struct drm_printer *p,
> > -                            int mem_type)
> > +void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
> > +                             struct drm_printer *p)
> >   {
> > -     struct ttm_mem_type_manager *man = &bdev->man[mem_type];
> > -
> >       drm_printf(p, "    has_type: %d\n", man->has_type);
> >       drm_printf(p, "    use_type: %d\n", man->use_type);
> >       drm_printf(p, "    use_tt: %d\n", man->use_tt);
> >       drm_printf(p, "    size: %llu\n", man->size);
> >       drm_printf(p, "    available_caching: 0x%08X\n", man->available_caching);
> >       drm_printf(p, "    default_caching: 0x%08X\n", man->default_caching);
> > -     if (mem_type != TTM_PL_SYSTEM)
> > +     if (man->func && man->func->debug)
> >               (*man->func->debug)(man, p);
> >   }
> > +EXPORT_SYMBOL(ttm_mem_type_manager_debug);
> >
> >   static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
> >                                       struct ttm_placement *placement)
> >   {
> >       struct drm_printer p = drm_debug_printer(TTM_PFX);
> >       int i, ret, mem_type;
> > +     struct ttm_mem_type_manager *man;
> >
> >       drm_printf(&p, "No space for %p (%lu pages, %luK, %luM)\n",
> >                  bo, bo->mem.num_pages, bo->mem.size >> 10,
> > @@ -108,7 +108,8 @@ static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
> >                       return;
> >               drm_printf(&p, "  placement[%d]=0x%08X (%d)\n",
> >                          i, placement->placement[i].flags, mem_type);
> > -             ttm_mem_type_debug(bo->bdev, &p, mem_type);
> > +             man = &bo->bdev->man[mem_type];
> > +             ttm_mem_type_manager_debug(man, &p);
> >       }
> >   }
> >
> > diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> > index 7958e411269a..73f5d9c766cc 100644
> > --- a/include/drm/ttm/ttm_bo_driver.h
> > +++ b/include/drm/ttm/ttm_bo_driver.h
> > @@ -795,4 +795,12 @@ pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);
> >
> >   extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
> >
> > +/**
> > + * ttm_mem_type_manager_debug
> > + *
> > + * @man: manager type to dump.
> > + * @p: printer to use for debug.
> > + */
> > +void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
> > +                             struct drm_printer *p);
> >   #endif
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 2b49037231eb..2ac70ec1f37d 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -77,26 +77,26 @@  static inline int ttm_mem_type_from_place(const struct ttm_place *place,
 	return 0;
 }
 
-static void ttm_mem_type_debug(struct ttm_bo_device *bdev, struct drm_printer *p,
-			       int mem_type)
+void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
+				struct drm_printer *p)
 {
-	struct ttm_mem_type_manager *man = &bdev->man[mem_type];
-
 	drm_printf(p, "    has_type: %d\n", man->has_type);
 	drm_printf(p, "    use_type: %d\n", man->use_type);
 	drm_printf(p, "    use_tt: %d\n", man->use_tt);
 	drm_printf(p, "    size: %llu\n", man->size);
 	drm_printf(p, "    available_caching: 0x%08X\n", man->available_caching);
 	drm_printf(p, "    default_caching: 0x%08X\n", man->default_caching);
-	if (mem_type != TTM_PL_SYSTEM)
+	if (man->func && man->func->debug)
 		(*man->func->debug)(man, p);
 }
+EXPORT_SYMBOL(ttm_mem_type_manager_debug);
 
 static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
 					struct ttm_placement *placement)
 {
 	struct drm_printer p = drm_debug_printer(TTM_PFX);
 	int i, ret, mem_type;
+	struct ttm_mem_type_manager *man;
 
 	drm_printf(&p, "No space for %p (%lu pages, %luK, %luM)\n",
 		   bo, bo->mem.num_pages, bo->mem.size >> 10,
@@ -108,7 +108,8 @@  static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
 			return;
 		drm_printf(&p, "  placement[%d]=0x%08X (%d)\n",
 			   i, placement->placement[i].flags, mem_type);
-		ttm_mem_type_debug(bo->bdev, &p, mem_type);
+		man = &bo->bdev->man[mem_type];
+		ttm_mem_type_manager_debug(man, &p);
 	}
 }
 
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
index 7958e411269a..73f5d9c766cc 100644
--- a/include/drm/ttm/ttm_bo_driver.h
+++ b/include/drm/ttm/ttm_bo_driver.h
@@ -795,4 +795,12 @@  pgprot_t ttm_io_prot(uint32_t caching_flags, pgprot_t tmp);
 
 extern const struct ttm_mem_type_manager_func ttm_bo_manager_func;
 
+/**
+ * ttm_mem_type_manager_debug
+ *
+ * @man: manager type to dump.
+ * @p: printer to use for debug.
+ */
+void ttm_mem_type_manager_debug(struct ttm_mem_type_manager *man,
+				struct drm_printer *p);
 #endif