Fwd: Re: [PATCH 1/7] drm/ttm: make ttm_mem_type_manager_func debug more usfull

Christian König deathsimple at vodafone.de
Tue Aug 8 08:13:07 UTC 2017


Somehow those two patches didn't ended up on dri-devel.

So forwarding manually,
Christian.

Am 07.08.2017 um 17:48 schrieb Christian König:
> From: Christian König <christian.koenig at amd.com>
>
> Provide the drm printer directly instead of just the callback.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c   | 7 +++----
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c  | 7 +++----
>   drivers/gpu/drm/nouveau/nouveau_ttm.c         | 6 ++++--
>   drivers/gpu/drm/ttm/ttm_bo.c                  | 3 ++-
>   drivers/gpu/drm/ttm/ttm_bo_manager.c          | 5 ++---
>   drivers/gpu/drm/virtio/virtgpu_ttm.c          | 2 +-
>   drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 4 ++--
>   include/drm/ttm/ttm_bo_driver.h               | 5 +++--
>   8 files changed, 20 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
> index 5e6b90c..26818b0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
> @@ -253,18 +253,17 @@ static void amdgpu_gtt_mgr_del(struct ttm_mem_type_manager *man,
>    * amdgpu_gtt_mgr_debug - dump VRAM table
>    *
>    * @man: TTM memory type manager
> - * @prefix: text prefix
> + * @printer: DRM printer to use
>    *
>    * Dump the table content using printk.
>    */
>   static void amdgpu_gtt_mgr_debug(struct ttm_mem_type_manager *man,
> -				  const char *prefix)
> +				 struct drm_printer *printer)
>   {
>   	struct amdgpu_gtt_mgr *mgr = man->priv;
> -	struct drm_printer p = drm_debug_printer(prefix);
>   
>   	spin_lock(&mgr->lock);
> -	drm_mm_print(&mgr->mm, &p);
> +	drm_mm_print(&mgr->mm, printer);
>   	spin_unlock(&mgr->lock);
>   }
>   
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> index a2c59a0..3f86b47 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
> @@ -204,18 +204,17 @@ static void amdgpu_vram_mgr_del(struct ttm_mem_type_manager *man,
>    * amdgpu_vram_mgr_debug - dump VRAM table
>    *
>    * @man: TTM memory type manager
> - * @prefix: text prefix
> + * @printer: DRM printer to use
>    *
>    * Dump the table content using printk.
>    */
>   static void amdgpu_vram_mgr_debug(struct ttm_mem_type_manager *man,
> -				  const char *prefix)
> +				  struct drm_printer *printer)
>   {
>   	struct amdgpu_vram_mgr *mgr = man->priv;
> -	struct drm_printer p = drm_debug_printer(prefix);
>   
>   	spin_lock(&mgr->lock);
> -	drm_mm_print(&mgr->mm, &p);
> +	drm_mm_print(&mgr->mm, printer);
>   	spin_unlock(&mgr->lock);
>   }
>   
> diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> index 13e5cc5..9142068 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
> @@ -179,7 +179,8 @@ nouveau_gart_manager_new(struct ttm_mem_type_manager *man,
>   }
>   
>   static void
> -nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
> +nouveau_gart_manager_debug(struct ttm_mem_type_manager *man,
> +			   struct drm_printer *printer)
>   {
>   }
>   
> @@ -252,7 +253,8 @@ nv04_gart_manager_new(struct ttm_mem_type_manager *man,
>   }
>   
>   static void
> -nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
> +nv04_gart_manager_debug(struct ttm_mem_type_manager *man,
> +			struct drm_printer *printer)
>   {
>   }
>   
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index d3463eb..58e7fce 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -70,6 +70,7 @@ static inline int ttm_mem_type_from_place(const struct ttm_place *place,
>   static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type)
>   {
>   	struct ttm_mem_type_manager *man = &bdev->man[mem_type];
> +	struct drm_printer p = drm_debug_printer(TTM_PFX);
>   
>   	pr_err("    has_type: %d\n", man->has_type);
>   	pr_err("    use_type: %d\n", man->use_type);
> @@ -79,7 +80,7 @@ static void ttm_mem_type_debug(struct ttm_bo_device *bdev, int mem_type)
>   	pr_err("    available_caching: 0x%08X\n", man->available_caching);
>   	pr_err("    default_caching: 0x%08X\n", man->default_caching);
>   	if (mem_type != TTM_PL_SYSTEM)
> -		(*man->func->debug)(man, TTM_PFX);
> +		(*man->func->debug)(man, &p);
>   }
>   
>   static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
> diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
> index 90a6c0b..a7c232d 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
> @@ -136,13 +136,12 @@ static int ttm_bo_man_takedown(struct ttm_mem_type_manager *man)
>   }
>   
>   static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
> -			     const char *prefix)
> +			     struct drm_printer *printer)
>   {
>   	struct ttm_range_manager *rman = (struct ttm_range_manager *) man->priv;
> -	struct drm_printer p = drm_debug_printer(prefix);
>   
>   	spin_lock(&rman->lock);
> -	drm_mm_print(&rman->mm, &p);
> +	drm_mm_print(&rman->mm, printer);
>   	spin_unlock(&rman->lock);
>   }
>   
> diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
> index 4e8e27d..ed2a6d2 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
> @@ -192,7 +192,7 @@ static int ttm_bo_man_takedown(struct ttm_mem_type_manager *man)
>   }
>   
>   static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
> -			     const char *prefix)
> +			     struct drm_printer *printer)
>   {
>   }
>   
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
> index c1900f4..5b82c3f 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
> @@ -157,9 +157,9 @@ static int vmw_gmrid_man_takedown(struct ttm_mem_type_manager *man)
>   }
>   
>   static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
> -				const char *prefix)
> +				struct drm_printer *printer)
>   {
> -	pr_info("%s: No debug info available for the GMR id manager\n", prefix);
> +	drm_printf(printer, "No debug info available for the GMR id manager\n");
>   }
>   
>   const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
> diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h
> index 04380ba..c92bf07 100644
> --- a/include/drm/ttm/ttm_bo_driver.h
> +++ b/include/drm/ttm/ttm_bo_driver.h
> @@ -228,13 +228,14 @@ struct ttm_mem_type_manager_func {
>   	 * struct ttm_mem_type_manager member debug
>   	 *
>   	 * @man: Pointer to a memory type manager.
> -	 * @prefix: Prefix to be used in printout to identify the caller.
> +	 * @printer: Prefix to be used in printout to identify the caller.
>   	 *
>   	 * This function is called to print out the state of the memory
>   	 * type manager to aid debugging of out-of-memory conditions.
>   	 * It may not be called from within atomic context.
>   	 */
> -	void (*debug)(struct ttm_mem_type_manager *man, const char *prefix);
> +	void (*debug)(struct ttm_mem_type_manager *man,
> +		      struct drm_printer *printer);
>   };
>   
>   /**




More information about the dri-devel mailing list