Skip to content

Commit

Permalink
drm/ttm: make ttm_mem_type_manager_func debug more useful
Browse files Browse the repository at this point in the history
Provide the drm printer directly instead of just the callback.

Signed-off-by: Christian König <[email protected]>
Reviewed-by: Alex Deucher <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
  • Loading branch information
ChristianKoenigAMD authored and alexdeucher committed Aug 17, 2017
1 parent aca8171 commit 373533f
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 19 deletions.
7 changes: 3 additions & 4 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_gtt_mgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
7 changes: 3 additions & 4 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
6 changes: 4 additions & 2 deletions drivers/gpu/drm/nouveau/nouveau_ttm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
}

Expand Down Expand Up @@ -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)
{
}

Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/drm/ttm/ttm_bo.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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,
Expand Down
5 changes: 2 additions & 3 deletions drivers/gpu/drm/ttm/ttm_bo_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/virtio/virtgpu_ttm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
}

Expand Down
4 changes: 2 additions & 2 deletions drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 = {
Expand Down
5 changes: 3 additions & 2 deletions include/drm/ttm/ttm_bo_driver.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,13 +229,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);
};

/**
Expand Down

0 comments on commit 373533f

Please sign in to comment.