[PATCH v2 4/5] drm/xe: Assign GT IDs properly on multi-tile + multi-GT platforms

Vodapalli, Ravi Kumar ravi.kumar.vodapalli at intel.com
Wed Jun 25 11:41:27 UTC 2025



On 6/17/2025 7:39 AM, Matt Roper wrote:
> Although "multi-tile" and "multiple GTs per tile" are mutually-exclusive
> characteristics on all of our platforms today, this may not always be
> true.  Assign GT IDs according to xe->info.max_gt_per_tile in a way that
> should work even if future platforms have different configurations.
>
> This patch should not change the behavior of current platforms; it only
> future-proofs for potential future designs.
>
> Signed-off-by: Matt Roper<matthew.d.roper at intel.com>
> ---
>   drivers/gpu/drm/xe/xe_mmio.c |  8 --------
>   drivers/gpu/drm/xe/xe_pci.c  | 14 ++++----------
>   2 files changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
> index 7357458bc0d2..b65d888ee8e4 100644
> --- a/drivers/gpu/drm/xe/xe_mmio.c
> +++ b/drivers/gpu/drm/xe/xe_mmio.c
> @@ -82,14 +82,6 @@ static void mmio_multi_tile_setup(struct xe_device *xe, size_t tile_mmio_size)
>   			drm_info(&xe->drm, "tile_count: %d, reduced_tile_count %d\n",
>   				 xe->info.tile_count, tile_count);
>   			xe->info.tile_count = tile_count;
> -
> -			/*
> -			 * FIXME: Needs some work for standalone media, but
> -			 * should be impossible with multi-tile for now:
> -			 * multi-tile platform with standalone media doesn't
> -			 * exist
> -			 */
> -			xe->info.gt_count = xe->info.tile_count;
>   		}
>   	}
>   
> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index a4885f64c2c4..b29252abbf3e 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
> @@ -687,10 +687,11 @@ static int xe_info_init(struct xe_device *xe,
>   	 */
>   	for_each_tile(tile, xe, id) {
>   		gt = tile->primary_gt;
> -		gt->info.id = xe->info.gt_count++;
>   		gt->info.type = XE_GT_TYPE_MAIN;
> +		gt->info.id = tile->id * xe->info.max_gt_per_tile;
why gt->info.id is equal to tile->id * xe->info.max_gt_per_tile then the 
resultant number exceeds max_gt_per_tile , i dont know whether we can 
assign gt->info.id as equal to tile->id
>   		gt->info.has_indirect_ring_state = graphics_desc->has_indirect_ring_state;
>   		gt->info.engine_mask = graphics_desc->hw_engine_mask;
> +		xe->info.gt_count++;
>   
>   		if (MEDIA_VER(xe) < 13 && media_desc)
>   			gt->info.engine_mask |= media_desc->hw_engine_mask;
> @@ -708,17 +709,10 @@ static int xe_info_init(struct xe_device *xe,
>   
>   		gt = tile->media_gt;
>   		gt->info.type = XE_GT_TYPE_MEDIA;
> +		gt->info.id = tile->id * xe->info.max_gt_per_tile + 1;
>   		gt->info.has_indirect_ring_state = media_desc->has_indirect_ring_state;
>   		gt->info.engine_mask = media_desc->hw_engine_mask;
> -
> -		/*
> -		 * FIXME: At the moment multi-tile and standalone media are
> -		 * mutually exclusive on current platforms.  We'll need to
> -		 * come up with a better way to number GTs if we ever wind
> -		 * up with platforms that support both together.
> -		 */
> -		drm_WARN_ON(&xe->drm, id != 0);
> -		gt->info.id = xe->info.gt_count++;
> +		xe->info.gt_count++;
>   	}
>   
>   	return 0;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-xe/attachments/20250625/ef84d2ab/attachment.htm>


More information about the Intel-xe mailing list