Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Stuart Summers <stuart.summers@intel.com>
Cc: intel-xe@lists.freedesktop.org, rodrigo.vivi@intel.com,
	matthew.brost@intel.com, matthew.d.roper@intel.com,
	fei.yang@intel.com, Stuart Summers <stuart.summers@intel.com>
Subject: [PATCH 00/11] Allow boot with only media GT
Date: Tue, 10 Nov 2026 23:14:42 +0000	[thread overview]
Message-ID: <20261110231442.218721-13-stuart.summers@intel.com> (raw)

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


             reply	other threads:[~2026-11-10 23:15 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-10 23:14 Stuart Summers [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261110231442.218721-13-stuart.summers@intel.com \
    --to=stuart.summers@intel.com \
    --cc=fei.yang@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=matthew.brost@intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox