[PATCH v2 5/7] drm/xe: unconditionally apply PINNED for pin_map()

K V P, Satyanarayana satyanarayana.k.v.p at intel.com
Thu Jan 23 09:07:00 UTC 2025


> -----Original Message-----
> From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of
> Matthew Auld
> Sent: Wednesday, December 18, 2024 5:49 PM
> To: intel-xe at lists.freedesktop.org
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>; Brost, Matthew
> <matthew.brost at intel.com>
> Subject: [PATCH v2 5/7] drm/xe: unconditionally apply PINNED for pin_map()
> 
> Some users apply PINNED and some don't when using pin_map(). The pin in
> pin_map() should imply PINNED so just unconditionally apply it and clean
> up all users.
> 
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Thomas Hellström <thomas.hellstrom at linux.intel.com>
> Cc: Matthew Brost <matthew.brost at intel.com>
> ---

Reviewed-by: Satyanarayana K V P <satyanarayana.k.v.p at intel.com>

>  drivers/gpu/drm/xe/display/intel_fbdev_fb.c   | 6 ++----
>  drivers/gpu/drm/xe/display/xe_plane_initial.c | 2 +-
>  drivers/gpu/drm/xe/tests/xe_migrate.c         | 9 +++------
>  drivers/gpu/drm/xe/xe_bo.c                    | 2 +-
>  drivers/gpu/drm/xe/xe_ggtt.c                  | 2 +-
>  drivers/gpu/drm/xe/xe_lmtt.c                  | 2 +-
>  drivers/gpu/drm/xe/xe_migrate.c               | 1 -
>  drivers/gpu/drm/xe/xe_pt.c                    | 4 ++--
>  8 files changed, 11 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> index ca95fcd098ec..8c134c322cc4 100644
> --- a/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> +++ b/drivers/gpu/drm/xe/display/intel_fbdev_fb.c
> @@ -44,8 +44,7 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct
> drm_fb_helper *helper,
>  		obj = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe),
>  					   NULL, size,
>  					   ttm_bo_type_kernel,
> XE_BO_FLAG_SCANOUT |
> -					   XE_BO_FLAG_STOLEN |
> -					   XE_BO_FLAG_PINNED);
> +					   XE_BO_FLAG_STOLEN);
>  		if (!IS_ERR(obj))
>  			drm_info(&xe->drm, "Allocated fbdev into stolen\n");
>  		else
> @@ -55,8 +54,7 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct
> drm_fb_helper *helper,
>  	if (IS_ERR(obj)) {
>  		obj = xe_bo_create_pin_map(xe, xe_device_get_root_tile(xe),
> NULL, size,
>  					   ttm_bo_type_kernel,
> XE_BO_FLAG_SCANOUT |
> -
> XE_BO_FLAG_VRAM_IF_DGFX(xe_device_get_root_tile(xe)) |
> -					   XE_BO_FLAG_PINNED);
> +
> XE_BO_FLAG_VRAM_IF_DGFX(xe_device_get_root_tile(xe)));
>  	}
> 
>  	if (IS_ERR(obj)) {
> diff --git a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> index 2eb9633f163a..934d817e7ff9 100644
> --- a/drivers/gpu/drm/xe/display/xe_plane_initial.c
> +++ b/drivers/gpu/drm/xe/display/xe_plane_initial.c
> @@ -66,7 +66,7 @@ initial_plane_bo(struct xe_device *xe,
>  	if (plane_config->size == 0)
>  		return NULL;
> 
> -	flags = XE_BO_FLAG_PINNED | XE_BO_FLAG_SCANOUT |
> XE_BO_FLAG_GGTT;
> +	flags = XE_BO_FLAG_SCANOUT | XE_BO_FLAG_GGTT;
> 
>  	base = round_down(plane_config->base, page_size);
>  	if (IS_DGFX(xe)) {
> diff --git a/drivers/gpu/drm/xe/tests/xe_migrate.c
> b/drivers/gpu/drm/xe/tests/xe_migrate.c
> index d5fe0ea889ad..52f89476bf62 100644
> --- a/drivers/gpu/drm/xe/tests/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/tests/xe_migrate.c
> @@ -202,8 +202,7 @@ static void xe_migrate_sanity_test(struct xe_migrate
> *m, struct kunit *test)
> 
>  	big = xe_bo_create_pin_map(xe, tile, m->q->vm, SZ_4M,
>  				   ttm_bo_type_kernel,
> -				   XE_BO_FLAG_VRAM_IF_DGFX(tile) |
> -				   XE_BO_FLAG_PINNED);
> +				   XE_BO_FLAG_VRAM_IF_DGFX(tile));
>  	if (IS_ERR(big)) {
>  		KUNIT_FAIL(test, "Failed to allocate bo: %li\n", PTR_ERR(big));
>  		goto vunmap;
> @@ -211,8 +210,7 @@ static void xe_migrate_sanity_test(struct xe_migrate
> *m, struct kunit *test)
> 
>  	pt = xe_bo_create_pin_map(xe, tile, m->q->vm, XE_PAGE_SIZE,
>  				  ttm_bo_type_kernel,
> -				  XE_BO_FLAG_VRAM_IF_DGFX(tile) |
> -				  XE_BO_FLAG_PINNED);
> +				  XE_BO_FLAG_VRAM_IF_DGFX(tile));
>  	if (IS_ERR(pt)) {
>  		KUNIT_FAIL(test, "Failed to allocate fake pt: %li\n",
>  			   PTR_ERR(pt));
> @@ -222,8 +220,7 @@ static void xe_migrate_sanity_test(struct xe_migrate
> *m, struct kunit *test)
>  	tiny = xe_bo_create_pin_map(xe, tile, m->q->vm,
>  				    2 * SZ_4K,
>  				    ttm_bo_type_kernel,
> -				    XE_BO_FLAG_VRAM_IF_DGFX(tile) |
> -				    XE_BO_FLAG_PINNED);
> +				    XE_BO_FLAG_VRAM_IF_DGFX(tile));
>  	if (IS_ERR(tiny)) {
>  		KUNIT_FAIL(test, "Failed to allocate tiny fake pt: %li\n",
>  			   PTR_ERR(tiny));
> diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c
> index 83a49c887e0c..77918e30b904 100644
> --- a/drivers/gpu/drm/xe/xe_bo.c
> +++ b/drivers/gpu/drm/xe/xe_bo.c
> @@ -1733,7 +1733,7 @@ struct xe_bo
> *xe_bo_create_pin_map_at_aligned(struct xe_device *xe,
>  		flags |= XE_BO_FLAG_GGTT;
> 
>  	bo = xe_bo_create_locked_range(xe, tile, vm, size, start, end, type,
> -				       flags | XE_BO_FLAG_NEEDS_CPU_ACCESS,
> +				       flags | XE_BO_FLAG_NEEDS_CPU_ACCESS
> | XE_BO_FLAG_PINNED,
>  				       alignment);
>  	if (IS_ERR(bo))
>  		return bo;
> diff --git a/drivers/gpu/drm/xe/xe_ggtt.c b/drivers/gpu/drm/xe/xe_ggtt.c
> index 94ccbfdcd11f..c0e19ba77c96 100644
> --- a/drivers/gpu/drm/xe/xe_ggtt.c
> +++ b/drivers/gpu/drm/xe/xe_ggtt.c
> @@ -365,7 +365,7 @@ int xe_ggtt_init(struct xe_ggtt *ggtt)
>  	 * scratch entires, rather keep the scratch page in system memory on
>  	 * platforms where 64K pages are needed for VRAM.
>  	 */
> -	flags = XE_BO_FLAG_PINNED |
> XE_BO_FLAG_PINNED_EARLY_RESTORE;
> +	flags = XE_BO_FLAG_PINNED_EARLY_RESTORE;
>  	if (ggtt->flags & XE_GGTT_FLAGS_64K)
>  		flags |= XE_BO_FLAG_SYSTEM;
>  	else
> diff --git a/drivers/gpu/drm/xe/xe_lmtt.c b/drivers/gpu/drm/xe/xe_lmtt.c
> index a60ceae4c6dd..5b8855b8be88 100644
> --- a/drivers/gpu/drm/xe/xe_lmtt.c
> +++ b/drivers/gpu/drm/xe/xe_lmtt.c
> @@ -71,7 +71,7 @@ static struct xe_lmtt_pt *lmtt_pt_alloc(struct xe_lmtt
> *lmtt, unsigned int level
>  					     lmtt->ops->lmtt_pte_num(level)),
>  				  ttm_bo_type_kernel,
> 
> XE_BO_FLAG_VRAM_IF_DGFX(lmtt_to_tile(lmtt)) |
> -				  XE_BO_FLAG_NEEDS_64K |
> XE_BO_FLAG_PINNED);
> +				  XE_BO_FLAG_NEEDS_64K);
>  	if (IS_ERR(bo)) {
>  		err = PTR_ERR(bo);
>  		goto out_free_pt;
> diff --git a/drivers/gpu/drm/xe/xe_migrate.c
> b/drivers/gpu/drm/xe/xe_migrate.c
> index 0a448b390b86..33b6569a861a 100644
> --- a/drivers/gpu/drm/xe/xe_migrate.c
> +++ b/drivers/gpu/drm/xe/xe_migrate.c
> @@ -209,7 +209,6 @@ static int xe_migrate_prepare_vm(struct xe_tile *tile,
> struct xe_migrate *m,
>  				  num_entries * XE_PAGE_SIZE,
>  				  ttm_bo_type_kernel,
>  				  XE_BO_FLAG_VRAM_IF_DGFX(tile) |
> -				  XE_BO_FLAG_PINNED |
>  				  XE_BO_FLAG_PAGETABLE |
>  				  XE_BO_FLAG_PINNED_EARLY_RESTORE);
>  	if (IS_ERR(bo))
> diff --git a/drivers/gpu/drm/xe/xe_pt.c b/drivers/gpu/drm/xe/xe_pt.c
> index 0fa90bdd361e..8e56da25f806 100644
> --- a/drivers/gpu/drm/xe/xe_pt.c
> +++ b/drivers/gpu/drm/xe/xe_pt.c
> @@ -113,8 +113,8 @@ struct xe_pt *xe_pt_create(struct xe_vm *vm, struct
> xe_tile *tile,
>  		return ERR_PTR(-ENOMEM);
> 
>  	bo_flags = XE_BO_FLAG_VRAM_IF_DGFX(tile) |
> -		   XE_BO_FLAG_IGNORE_MIN_PAGE_SIZE |
> XE_BO_FLAG_PINNED |
> -		   XE_BO_FLAG_NO_RESV_EVICT | XE_BO_FLAG_PAGETABLE;
> +		   XE_BO_FLAG_IGNORE_MIN_PAGE_SIZE |
> XE_BO_FLAG_NO_RESV_EVICT |
> +		   XE_BO_FLAG_PAGETABLE;
>  	if (!vm->xef) /* kmd */
>  		bo_flags |= XE_BO_FLAG_PINNED_EARLY_RESTORE;
> 
> --
> 2.47.1



More information about the Intel-xe mailing list