diff mbox series

[09/11] drm/ttm: audit bo->resource usage

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

Commit Message

Christian König May 19, 2022, 9:55 a.m. UTC
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(-)

Comments

Ruhl, Michael J May 19, 2022, 2:15 p.m. UTC | #1
>-----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 mbox series

Patch

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;