[Intel-xe] [PATCH v6 1/6] drm/xe/bo: consider bo->flags in xe_bo_migrate()

Souza, Jose jose.souza at intel.com
Fri Jun 23 22:55:29 UTC 2023


On Mon, 2023-06-19 at 12:00 +0100, Matthew Auld wrote:
> For VRAM allocations the bo->flags can control some characteristics of
> the underlying memory, like whether it needs to be contiguous, and in
> the future whether it needs to be in the CPU visible portion. Rather use
> add_vram() in xe_bo_migrate() which should take care of such things for
> us.

Reviewed-by: José Roberto de Souza <jose.souza at intel.com>

> 
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: José Roberto de Souza <jose.souza at intel.com>
> ---
>  drivers/gpu/drm/xe/xe_bo.c | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index b9f4b61381ca..71a14e1f25be 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -1852,6 +1852,7 @@ static void xe_place_from_ttm_type(u32 mem_type, struct ttm_place *place)
>   */
>  int xe_bo_migrate(struct xe_bo *bo, u32 mem_type)
>  {
> +	struct xe_device *xe = ttm_to_xe_device(bo->ttm.bdev);
>  	struct ttm_operation_ctx ctx = {
>  		.interruptible = true,
>  		.no_wait_gpu = false,
> @@ -1876,6 +1877,18 @@ int xe_bo_migrate(struct xe_bo *bo, u32 mem_type)
>  	placement.placement = &requested;
>  	placement.busy_placement = &requested;
>  
> +	/*
> +	 * Stolen needs to be handled like below VRAM handling if we ever need
> +	 * to support it.
> +	 */
> +	drm_WARN_ON(&xe->drm, mem_type == XE_PL_STOLEN);
> +
> +	if (mem_type_is_vram(mem_type)) {
> +		u32 c = 0;
> +
> +		add_vram(xe, bo, &requested, bo->flags, mem_type, &c);
> +	}
> +
>  	return ttm_bo_validate(&bo->ttm, &placement, &ctx);
>  }
>  



More information about the Intel-xe mailing list