[PATCH 08/59] drm/ttm: export memory type debug entrypoint.
Christian König
christian.koenig at amd.com
Tue Aug 4 10:35:33 UTC 2020
Am 04.08.20 um 04:55 schrieb Dave Airlie:
> From: Dave Airlie <airlied at 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 at redhat.com>
Reviewed-by: Christian König <christian.koenig at 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
More information about the dri-devel
mailing list