From: Matthew Auld <matthew.auld@intel.com>
To: intel-xe@lists.freedesktop.org
Subject: [Intel-xe] [PATCH v5 0/5] PAT and cache coherency support
Date: Thu, 28 Sep 2023 10:28:17 +0100 [thread overview]
Message-ID: <20230928092816.375130-7-matthew.auld@intel.com> (raw)
Branch available here:
https://gitlab.freedesktop.org/mwa/kernel/-/tree/xe-pat-index?ref_type=heads
Goal here is to allow userspace to directly control the pat_index when mapping
memory via the ppGTT, in addtion to the CPU caching mode. This is very much
needed on newer igpu platforms which allow incoherent GT access, where the
choice over the cache level and expected coherency is best left to userspace
depending on their usecase. In the future there may also be other stuff encoded
in the pat_index, so giving userspace direct control will also be needed there.
To support this we added new gem_create uAPI for selecting the CPU cache
mode to use for system memory, including the expected GPU coherency mode. There
are various restrictions here for the selected coherency mode and compatible CPU
cache modes. With that in place the actual pat_index can now be provided as
part of vm_bind. The only restriction is that the coherency mode of the
pat_index must be at least as coherent as the gem_create coherency mode. There
are also some special cases like with userptr and dma-buf.
v2:
- Loads of improvements/tweaks. Main changes are to now allow
gem_create.coh_mode <= coh_mode(pat_index), rather than it needing to match
exactly. This simplifies the dma-buf policy from userspace pov. Also we now
only consider COH_NONE and COH_AT_LEAST_1WAY.
v3:
- Rebase. Split the pte_encode() refactoring, plus various smaller tweaks and
fixes.
v4:
- Rebase on Lucas' new series.
- Drop UC cache mode.
- s/smem_cpu_caching/cpu_caching/. Idea is to make VRAM WC explicit in the
uapi, plus make it more future proof.
v5:
- Rebase, plus some small tweaks and fixes.
--
2.41.0
next reply other threads:[~2023-09-28 9:28 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-28 9:28 Matthew Auld [this message]
2023-09-28 9:28 ` [Intel-xe] [PATCH v5 1/5] drm/xe/pat: trim the xelp PAT table Matthew Auld
2023-09-28 9:28 ` [Intel-xe] [PATCH v5 2/5] drm/xe: directly use pat_index for pte_encode Matthew Auld
2023-09-28 9:28 ` [Intel-xe] [PATCH v5 3/5] drm/xe/uapi: Add support for cache and coherency mode Matthew Auld
2023-09-28 9:28 ` [Intel-xe] [PATCH v5 4/5] drm/xe/pat: annotate pat_index with " Matthew Auld
2023-09-28 9:28 ` [Intel-xe] [PATCH v5 5/5] drm/xe/uapi: support pat_index selection with vm_bind Matthew Auld
2023-09-28 9:31 ` [Intel-xe] ✓ CI.Patch_applied: success for PAT and cache coherency support (rev6) Patchwork
2023-09-28 9:31 ` [Intel-xe] ✗ CI.checkpatch: warning " Patchwork
2023-09-28 9:32 ` [Intel-xe] ✓ CI.KUnit: success " Patchwork
2023-09-28 9:39 ` [Intel-xe] ✓ CI.Build: " Patchwork
2023-09-28 9:40 ` [Intel-xe] ✗ CI.Hooks: failure " Patchwork
2023-09-28 9:41 ` [Intel-xe] ✓ CI.checksparse: success " Patchwork
2023-09-28 10:15 ` [Intel-xe] ✗ CI.BAT: failure " 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=20230928092816.375130-7-matthew.auld@intel.com \
--to=matthew.auld@intel.com \
--cc=intel-xe@lists.freedesktop.org \
/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