Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/11] Allow boot with only media GT
@ 2026-11-10 23:14 Stuart Summers
  2026-11-10 23:14 ` [PATCH 01/11] drm/xe: Detect each GMD_ID IP in a loop Stuart Summers
                   ` (14 more replies)
  0 siblings, 15 replies; 22+ messages in thread
From: Stuart Summers @ 2026-11-10 23:14 UTC (permalink / raw)
  Cc: intel-xe, rodrigo.vivi, matthew.brost, matthew.d.roper, fei.yang,
	Stuart Summers

There is a configfs right now which allows enabling either the
media GT, the primary GT, both, or neither. The driver right now
cannot load without a primary GT though. For debug purposes, it
can be interesting to load with only a media GT though. This of
course means we lose access to blitter and a lot of the core functions.

This series attempts to cover the most basic scenarios needed to
support a media-only configuration by splitting the handle_gmdids
function, adding proper NULL handling and reworking some of the
root_tile logic. With media we can't use flat_ccs or
resizeable bar. These are as much as possible split into separate
patches to help with reviewability.

I tested this on CRI in each combination of media, primary, and both.
The configuration without either GT is still not supported and the
probe will fail. But at least now the driver load can complete
with only the media GT.

In addition to the split, there is a patch here which also starts
checking the GU_CNTL register for IP presense. This is interesting
because, particularly for debugging, we can fuse off one or both
GTs and we still want the driver to comprehend that at runtime. Of
course the VF can't access this register so it still spins off of
the GMD ID. I confirmed that the GMD ID reads out as 0 when the
media is fused off since it is powered down.

Note that while CPU copies used for migrations and page table updates
when only media GT is enabled, instead of reworking the migration
structure to move the VM out of the migration queue and back into
the migration structure itself, I decided for now to just add a
kind of "fake" engine (just VDBOX class). This isn't actually
expected to work, but since we're doing CPU copies it shouldn't
matter. Hoping to get some review feedback here before doing too much
extensive refactoring here. I can look there if this isn't acceptable
though.

I used claude opus 5 through the process here.

Stuart Summers (11):
  drm/xe: Detect each GMD_ID IP in a loop
  drm/xe: Tolerate a missing graphics IP in xe_info_init()
  drm/xe: Verify IP presence against GU_CNTL
  drm/xe: Guard per-tile primary GT accesses
  drm/xe: Stop assuming the root tile has a primary GT
  drm/xe: Do not claim flat CCS without a graphics IP
  drm/xe: Run page table updates on the media GT when there is no
    primary
  drm/xe: Document that gt_types_allowed=media now probes
  drm/xe: Fall back to CPU copies when the tile cannot blit
  drm/xe: Require a fully visible VRAM BAR without a primary GT
  drm/xe: Allow probe without a primary GT

 drivers/gpu/drm/xe/regs/xe_regs.h  |   2 +
 drivers/gpu/drm/xe/xe_bo.c         |  43 +++++---
 drivers/gpu/drm/xe/xe_configfs.c   |   7 +-
 drivers/gpu/drm/xe/xe_device.h     |  16 +++
 drivers/gpu/drm/xe/xe_exec_queue.c |   5 +-
 drivers/gpu/drm/xe/xe_gt.c         |  11 +-
 drivers/gpu/drm/xe/xe_memirq.c     |   9 +-
 drivers/gpu/drm/xe/xe_migrate.c    |  45 ++++++---
 drivers/gpu/drm/xe/xe_migrate.h    |   2 +
 drivers/gpu/drm/xe/xe_oa.c         |  24 ++++-
 drivers/gpu/drm/xe/xe_pagefault.c  |   4 +-
 drivers/gpu/drm/xe/xe_pci.c        | 156 +++++++++++++++++++----------
 drivers/gpu/drm/xe/xe_query.c      |   3 +-
 drivers/gpu/drm/xe/xe_tile.h       |  32 ++++++
 drivers/gpu/drm/xe/xe_tlb_inval.c  |  41 ++++----
 drivers/gpu/drm/xe/xe_vm.c         |   2 +-
 drivers/gpu/drm/xe/xe_vram.c       |  15 +++
 17 files changed, 295 insertions(+), 122 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2026-11-12 12:21 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10 23:14 [PATCH 00/11] Allow boot with only media GT Stuart Summers
2026-11-10 23:14 ` [PATCH 01/11] drm/xe: Detect each GMD_ID IP in a loop Stuart Summers
2026-11-10 23:14 ` [PATCH 02/11] drm/xe: Tolerate a missing graphics IP in xe_info_init() Stuart Summers
2026-11-10 23:14 ` [PATCH 03/11] drm/xe: Verify IP presence against GU_CNTL Stuart Summers
2026-11-10 23:14 ` [PATCH 04/11] drm/xe: Guard per-tile primary GT accesses Stuart Summers
2026-11-10 23:14 ` [PATCH 05/11] drm/xe: Stop assuming the root tile has a primary GT Stuart Summers
2026-11-11  2:59   ` sashiko-bot
2026-11-10 23:14 ` [PATCH 06/11] drm/xe: Do not claim flat CCS without a graphics IP Stuart Summers
2026-11-11  3:21   ` sashiko-bot
2026-11-10 23:14 ` [PATCH 07/11] drm/xe: Run page table updates on the media GT when there is no primary Stuart Summers
2026-11-11  3:53   ` sashiko-bot
2026-11-10 23:14 ` [PATCH 08/11] drm/xe: Document that gt_types_allowed=media now probes Stuart Summers
2026-11-10 23:14 ` [PATCH 09/11] drm/xe: Fall back to CPU copies when the tile cannot blit Stuart Summers
2026-11-11  4:25   ` sashiko-bot
2026-11-10 23:14 ` [PATCH 10/11] drm/xe: Require a fully visible VRAM BAR without a primary GT Stuart Summers
2026-11-11  4:38   ` sashiko-bot
2026-11-10 23:14 ` [PATCH 11/11] drm/xe: Allow probe " Stuart Summers
2026-11-11  4:57   ` sashiko-bot
2026-11-10 23:39 ` ✓ CI.KUnit: success for Allow boot with only media GT Patchwork
2026-11-11  0:14 ` ✓ Xe.CI.BAT: " Patchwork
2026-11-11  4:17 ` ✓ Xe.CI.FULL: " Patchwork
2026-11-12 12:21 ` [PATCH 00/11] " Piotr Piórkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox