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
next 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.