[PATCH 2/2] drm/xe: Refactor max_remote_tiles
Matt Roper
matthew.d.roper at intel.com
Fri Jan 17 00:09:07 UTC 2025
On Thu, Jan 16, 2025 at 11:16:26AM -0800, Summers, Stuart wrote:
> On Thu, 2025-01-16 at 18:24 +0530, Sai Teja Pottumuttu wrote:
> > max_remote_tiles is more related to the platform than the GT IP. Thus
> > move it to platform descriptor from graphics descriptor. Note that
> > the
> > FIXME is no more required, thus it can be dropped.
>
> I think we still want this FIXME. Has anything fundamentally changed in
> the driver wrt tiles vs gts?
I think at this point we've fixed most of the code to use
xe->info.gt_count in the proper places instead of xe->info.tile_count.
E.g., commit 37efea9ca258 ("drm/xe: Allow GT looping and lookup on
standalone media") and similar changes. If there are places still
incorrectly using tile_count then we should fix those, but I'm not aware
of any off the top of my head.
The thing that is still a bit of an open issue is if we eventually have
a platform that has both multiple tiles _and_ multiple GTs per tile,
we'll need to figure out how we want to number the GTs (for example,
0=p 1=m 2=p 3=m vs 0=p 1=p 2=m 3=m) and then rework code like
xe_device_get_gt() to use that. But that decision can wait until we
actually have such a platform.
Matt
>
> Thanks,
> Stuart
>
> >
> > Signed-off-by: Sai Teja Pottumuttu <sai.teja.pottumuttu at intel.com>
> > ---
> > drivers/gpu/drm/xe/xe_pci.c | 9 +++------
> > drivers/gpu/drm/xe/xe_pci_types.h | 2 --
> > 2 files changed, 3 insertions(+), 8 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_pci.c
> > b/drivers/gpu/drm/xe/xe_pci.c
> > index f59c1acae23f..7f17e5ea6edd 100644
> > --- a/drivers/gpu/drm/xe/xe_pci.c
> > +++ b/drivers/gpu/drm/xe/xe_pci.c
> > @@ -55,6 +55,7 @@ struct xe_device_desc {
> > enum xe_platform platform;
> >
> > u8 dma_mask_size;
> > + u8 max_remote_tiles:2;
> >
> > u8 require_force_probe:1;
> > u8 is_dgfx:1;
> > @@ -136,7 +137,6 @@ static const struct xe_graphics_desc
> > graphics_xehpc = {
> > BIT(XE_HW_ENGINE_CCS2) | BIT(XE_HW_ENGINE_CCS3),
> >
> > XE_HP_FEATURES,
> > - .max_remote_tiles = 1,
> > .va_bits = 57,
> > .vm_max_level = 4,
> > .vram_flags = XE_VRAM_FLAGS_NEED64K,
> > @@ -329,6 +329,7 @@ static const __maybe_unused struct xe_device_desc
> > pvc_desc = {
> > .dma_mask_size = 52,
> > .has_display = false,
> > .has_heci_gscfi = 1,
> > + .max_remote_tiles = 1,
> > .require_force_probe = true,
> > };
> >
> > @@ -635,6 +636,7 @@ static int xe_info_init_early(struct xe_device
> > *xe,
> > xe->info.probe_display = IS_ENABLED(CONFIG_DRM_XE_DISPLAY) &&
> > xe_modparam.probe_display &&
> > desc->has_display;
> > + xe->info.tile_count = 1 + desc->max_remote_tiles;
> >
> > err = xe_tile_init_early(xe_device_get_root_tile(xe), xe, 0);
> > if (err)
> > @@ -706,12 +708,7 @@ static int xe_info_init(struct xe_device *xe,
> > * version 13 or higher has an additional dedicated media
> > GT. And
> > * depending on the graphics IP there may be additional
> > "remote tiles."
> > * All of these together determine the overall GT count.
> > - *
> > - * FIXME: 'tile_count' here is misnamed since the rest of the
> > driver
> > - * treats it as the number of GTs rather than just the number
> > of tiles.
> > */
> > - xe->info.tile_count = 1 + graphics_desc->max_remote_tiles;
> > -
> > for_each_remote_tile(tile, xe, id) {
> > int err;
> >
> > diff --git a/drivers/gpu/drm/xe/xe_pci_types.h
> > b/drivers/gpu/drm/xe/xe_pci_types.h
> > index 7437415a54d5..b96423844952 100644
> > --- a/drivers/gpu/drm/xe/xe_pci_types.h
> > +++ b/drivers/gpu/drm/xe/xe_pci_types.h
> > @@ -19,8 +19,6 @@ struct xe_graphics_desc {
> >
> > u64 hw_engine_mask; /* hardware engines provided by
> > graphics IP */
> >
> > - u8 max_remote_tiles:2;
> > -
> > u8 has_asid:1;
> > u8 has_atomic_enable_pte_bit:1;
> > u8 has_flat_ccs:1;
>
--
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation
More information about the Intel-xe
mailing list