Message ID | 20220519095508.115203-10-christian.koenig@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/11] drm/radeon: switch over to ttm_bo_init_reserved | expand |
>-----Original Message----- >From: dri-devel <dri-devel-bounces@lists.freedesktop.org> On Behalf Of >Christian König >Sent: Thursday, May 19, 2022 5:55 AM >To: intel-gfx@lists.freedesktop.org >Cc: matthew.william.auld@gmail.com; Christian König ><christian.koenig@amd.com>; dri-devel@lists.freedesktop.org >Subject: [PATCH 09/11] drm/ttm: audit bo->resource usage > >Allow BOs to exist without backing store. Took me a while to figure out that only the last line is related to this commit message. Could you add something like: Refactor usage information. Allow BOs to exist without backing store. ? Would make this patch a little easier to decipher. M >Signed-off-by: Christian König <christian.koenig@amd.com> >--- > drivers/gpu/drm/ttm/ttm_bo.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > >diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c >index 2b01cb30694a..a55564c8b57c 100644 >--- a/drivers/gpu/drm/ttm/ttm_bo.c >+++ b/drivers/gpu/drm/ttm/ttm_bo.c >@@ -117,12 +117,13 @@ static int ttm_bo_handle_move_mem(struct >ttm_buffer_object *bo, > struct ttm_operation_ctx *ctx, > struct ttm_place *hop) > { >- struct ttm_resource_manager *old_man, *new_man; > struct ttm_device *bdev = bo->bdev; >+ bool old_use_tt, new_use_tt; > int ret; > >- old_man = ttm_manager_type(bdev, bo->resource->mem_type); >- new_man = ttm_manager_type(bdev, mem->mem_type); >+ old_use_tt = bo->resource && >+ ttm_manager_type(bdev, bo->resource->mem_type)- >>use_tt; >+ new_use_tt = ttm_manager_type(bdev, mem->mem_type)->use_tt; > > ttm_bo_unmap_virtual(bo); > >@@ -130,11 +131,11 @@ static int ttm_bo_handle_move_mem(struct >ttm_buffer_object *bo, > * Create and bind a ttm if required. > */ > >- if (new_man->use_tt) { >+ if (new_use_tt) { > /* Zero init the new TTM structure if the old location should > * have used one as well. > */ >- ret = ttm_tt_create(bo, old_man->use_tt); >+ ret = ttm_tt_create(bo, old_use_tt); > if (ret) > goto out_err; > >@@ -160,8 +161,7 @@ static int ttm_bo_handle_move_mem(struct >ttm_buffer_object *bo, > return 0; > > out_err: >- new_man = ttm_manager_type(bdev, bo->resource->mem_type); >- if (!new_man->use_tt) >+ if (!old_use_tt) > ttm_bo_tt_destroy(bo); > > return ret; >@@ -898,7 +898,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, > /* > * Check whether we need to move buffer. > */ >- if (!ttm_resource_compat(bo->resource, placement)) { >+ if (!bo->resource || !ttm_resource_compat(bo->resource, >placement)) { > ret = ttm_bo_move_buffer(bo, placement, ctx); > if (ret) > return ret; >-- >2.25.1
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 2b01cb30694a..a55564c8b57c 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c @@ -117,12 +117,13 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, struct ttm_operation_ctx *ctx, struct ttm_place *hop) { - struct ttm_resource_manager *old_man, *new_man; struct ttm_device *bdev = bo->bdev; + bool old_use_tt, new_use_tt; int ret; - old_man = ttm_manager_type(bdev, bo->resource->mem_type); - new_man = ttm_manager_type(bdev, mem->mem_type); + old_use_tt = bo->resource && + ttm_manager_type(bdev, bo->resource->mem_type)->use_tt; + new_use_tt = ttm_manager_type(bdev, mem->mem_type)->use_tt; ttm_bo_unmap_virtual(bo); @@ -130,11 +131,11 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, * Create and bind a ttm if required. */ - if (new_man->use_tt) { + if (new_use_tt) { /* Zero init the new TTM structure if the old location should * have used one as well. */ - ret = ttm_tt_create(bo, old_man->use_tt); + ret = ttm_tt_create(bo, old_use_tt); if (ret) goto out_err; @@ -160,8 +161,7 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, return 0; out_err: - new_man = ttm_manager_type(bdev, bo->resource->mem_type); - if (!new_man->use_tt) + if (!old_use_tt) ttm_bo_tt_destroy(bo); return ret; @@ -898,7 +898,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, /* * Check whether we need to move buffer. */ - if (!ttm_resource_compat(bo->resource, placement)) { + if (!bo->resource || !ttm_resource_compat(bo->resource, placement)) { ret = ttm_bo_move_buffer(bo, placement, ctx); if (ret) return ret;
Allow BOs to exist without backing store. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/ttm/ttm_bo.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-)