All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xin Wang <x.wang@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Xin Wang <x.wang@intel.com>,
	matthew.d.roper@intel.com, zbigniew.kempczynski@intel.com,
	kamil.konieczny@linux.intel.com, ravi.kumar.vodapalli@intel.com,
	stuart.summers@intel.com
Subject: [PATCH i-g-t v13 0/4] lib/intel_device_info: get the xe .graphics_rel from GMD_ID
Date: Wed, 23 Sep 2026 20:55:36 -0700	[thread overview]
Message-ID: <20260924035545.710985-1-x.wang@intel.com> (raw)

This series enables IGT to retrieve the accurate IP minor version
(graphics_rel) at runtime for xe platforms with GMD_ID support,
instead of relying on hardcoded values in the PCI device table.

Background:
-----------
Current IGT uses static PCI device tables with hardcoded graphics_rel
values. For Xe2+ platforms, devices sharing the same PCI ID may have
different graphics_rel (minor version) values.

The kernel's GMD_ID query provides accurate runtime IP version
information (ip_ver_major.ip_ver_minor) which should be used for
platform-specific workarounds and feature detection.

Limitation:
-----------
The device info cache is keyed by PCI device ID. A system with multiple
GPUs sharing a device ID but reporting different IP versions is not
supported; the last probed device wins. This is considered unlikely in
practice, while the hardcoded devid -> IP version mapping fixed here
affects every such device.

Benefits:
---------
- Accurate IP version for platform-specific workarounds
- Proper feature detection for hardware variants
- Unified device info API between i915 and xe drivers
- No changes needed to existing test code

V2:
- set the graphics version info in xe_device_get() don't copy
  the whole struct of the intel_device_info
- update the graphics_rel when the info is already in the cache
V3:
- Optimize the coding style
V4:
- add braces around the else statement body
V5:
- add new struct xe_device_ipver to hold the ipver info
- separate cache map to eliminate collision (Roper, Matthew D)
- changed function name to xe_ipver_cache_lookup() to avoid
  confusion (Roper, Matthew D)
V6:
- optimize the coding style. (Summers, Stuart)
V7:
- rebased to latest mainline
V8:
- Reworked caching in intel_get_device_info(): replace the per-thread single-entry cache
  with a process-wide cache keyed by devid (igt_map + pthread mutex), with automatic
  init/fini via igt_constructor/igt_destructor.
- Dropped the xe_ipver_cache_lookup() weak-symbol plumbing and the separate xe_query-side
  ipver cache. Instead, xe_query updates the cached intel_device_info directly via
  xe_dev_update_graphics_ver() when MAIN GT exposes ip_ver_{major,minor} via GMD_ID.
V9:
- make xe_dev_update_graphics_ver() return error and guard NULL cache.
- assert in xe query path to avoid silently ignoring update failures.
V10:
- rebased to latest master.
- statically initialize the cache mutex and create the map lazily
  instead of relying on igt_constructor ordering.
- fall back to the static table entry instead of intel_generic_info
  when a cache entry cannot be allocated.
- return -ENOENT from xe_dev_update_graphics_ver() and fix coding style.
- document the devid keying and the lockless readers.
- also drop graphics_rel from WCL and NVL-P.
- reword commit messages.

Xin Wang (4):
  lib/igt_core: add igt_destructor helper macro
  lib/intel_device_info: make device info cache process-wide
  lib/intel_device_info: allow xe_query to override graphics version
  lib/intel_device_info: remove the graphics_rel from xe2+ devices

 lib/igt_core.h          |  12 ++++
 lib/intel_chipset.h     |   1 +
 lib/intel_device_info.c | 156 ++++++++++++++++++++++++++++++++++------
 lib/meson.build         |   1 +
 lib/xe/xe_query.c       |  17 +++++
 5 files changed, 165 insertions(+), 22 deletions(-)

-- 
2.43.0


             reply	other threads:[~2026-09-24  3:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-24  3:55 Xin Wang [this message]
2026-09-24  3:55 ` [PATCH i-g-t v13 1/4] lib/igt_core: add igt_destructor helper macro Xin Wang
2026-09-24  3:55 ` [PATCH i-g-t v13 2/4] lib/intel_device_info: make device info cache process-wide Xin Wang
2026-09-25  6:22   ` Zbigniew Kempczyński
2026-09-25 23:43     ` Wang, X
2026-09-24  3:55 ` [PATCH i-g-t v13 3/4] lib/intel_device_info: allow xe_query to override graphics version Xin Wang
2026-09-24  3:55 ` [PATCH i-g-t v13 4/4] lib/intel_device_info: remove the graphics_rel from xe2+ devices Xin Wang
2026-09-24  5:34 ` ✓ Xe.CI.BAT: success for lib/intel_device_info: get the xe .graphics_rel from GMD_ID Patchwork
2026-09-24  5:43 ` ✓ i915.CI.BAT: " Patchwork
2026-09-24 18:22 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-09-25  5:28 ` ✗ i915.CI.Full: " Patchwork

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=20260924035545.710985-1-x.wang@intel.com \
    --to=x.wang@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=kamil.konieczny@linux.intel.com \
    --cc=matthew.d.roper@intel.com \
    --cc=ravi.kumar.vodapalli@intel.com \
    --cc=stuart.summers@intel.com \
    --cc=zbigniew.kempczynski@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.