Re: [RFC PATCH 05/18] drm/ttm: Add option to evict no BOs in operation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 24.04.24 um 18:56 schrieb Friedrich Vock:
When undoing evictions because of decreased memory pressure, it makes no
sense to try evicting other buffers.

That duplicates some functionality.

If a driver doesn't want eviction to happen it just needs to mark the desired placements as non-evictable with the TTM_PL_FLAG_DESIRED flag.

Regards,
Christian.


Signed-off-by: Friedrich Vock <friedrich.vock@xxxxxx>
---
  drivers/gpu/drm/ttm/ttm_bo.c | 2 ++
  include/drm/ttm/ttm_bo.h     | 2 ++
  2 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 9a0efbf79316c..3b89fabc2f00a 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -764,6 +764,8 @@ static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo,
  			break;
  		if (unlikely(ret != -ENOSPC))
  			return ret;
+		if (ctx->no_evict)
+			return -ENOSPC;
  		ret = ttm_mem_evict_first(bdev, man, place, ctx,
  					  ticket);
  		if (unlikely(ret != 0))
diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h
index 8a1a29c6fbc50..a8f21092403d6 100644
--- a/include/drm/ttm/ttm_bo.h
+++ b/include/drm/ttm/ttm_bo.h
@@ -192,6 +192,7 @@ struct ttm_operation_ctx {
  	bool gfp_retry_mayfail;
  	bool allow_res_evict;
  	bool force_alloc;
+	bool no_evict;
  	struct dma_resv *resv;
  	uint64_t bytes_moved;
  };
@@ -358,6 +359,7 @@ static inline void *ttm_kmap_obj_virtual(struct ttm_bo_kmap_obj *map,
  	return map->virtual;
  }

+
  int ttm_bo_wait_ctx(struct ttm_buffer_object *bo,
  		    struct ttm_operation_ctx *ctx);
  int ttm_bo_validate(struct ttm_buffer_object *bo,
--
2.44.0





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux