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