From: "Hellstrom, Thomas" <thomas.hellstrom@intel.com>
To: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>,
"tvrtko.ursulin@linux.intel.com" <tvrtko.ursulin@linux.intel.com>
Cc: "Auld, Matthew" <matthew.auld@intel.com>,
"Santa, Carlos" <carlos.santa@intel.com>,
"Vivi, Rodrigo" <rodrigo.vivi@intel.com>
Subject: Re: [Intel-xe] LLC configurating, mmap and bo cache management questions
Date: Wed, 6 Dec 2023 08:26:57 +0000 [thread overview]
Message-ID: <c16bc9f7bd18f531136ebbcf6504d497db9a793a.camel@intel.com> (raw)
In-Reply-To: <02c74379-6513-40cc-a195-c4eeb7a7fd79@linux.intel.com>
On Tue, 2023-12-05 at 14:19 +0000, Tvrtko Ursulin wrote:
>
> Hi,
>
> We are working on adding xe support to ChromeOS minigbm and have a
> couple questions.
>
> If I follow things correctly with xe mmap caching mode is fixed to
> object caching modes set at bo create. For framebuffers it will be WC
> and for the rest userspace can choose WB or WC via
> drm_xe_gem_create->cpu_caching. (Unless discrete, when WB cannot be
> used
> at all.)
>
> AFAICT minigbm basically cares about two transition points. Lets call
> them CPU access begin and end.
>
> 1)
> When a bo is mmapped it wants to invalidate the cache, which looks to
> be
> about making sure all GPU writes have landed to the backing store. In
> the i915 world that translates to the set_domain ioctl.
>
> What is the uapi for this with xe, or it is somehow guaranteed to not
> be
> needed?
Signalling a user-fence or dma-fence obtained as an out-fence from an
exec call will guarantee GPU caches are flushed. Currently I don't
think there is anything like gem wait in the uAPI, although Matt is
just about to add functionality to wait on all outstanding work on an
exec_queue.
>
> 2)
> When a bo is unmapped, or CPU access finished, it wants to flush the
> CPU
> caches. That is /almost/ completely a CPU operation, where it just
> needs
> to either clflush or invalidate the WC buffer respectively, if not
> the
> fact that clflush can be skipped on platforms with LLC.
>
> I did not see an equivalent of an I915_PARAM_HAS_LLC in xe? Did I
> miss
> it or what it is the plan for querying this detail?
XeKMD is generally coherent, except if UMD selects a GPU PAT index with
limited coherency together with WB instead of WC memory. In that case,
UMD is responsible for doing the needed CLFLUSH-ing, whereas KMD only
ensures initial clearing of the pages is CLFLUSHED for security
reasons.
I'm not 100% sure if UMD can actually select WB with limited coherency
PAT index in the initial uAPI revision, but Matthew has received
requests for that so any additional input here on performance
implications is appreciated.
The thinking here is otherwise that GPU PAT indices with limited
coherency should be used together with WC memory in the same situations
as VRAM/LMEM is used on DGFX.
/Thomas
>
> Regards,
>
> Tvrtko
next prev parent reply other threads:[~2023-12-06 8:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-05 14:19 [Intel-xe] LLC configurating, mmap and bo cache management questions Tvrtko Ursulin
2023-12-06 8:26 ` Hellstrom, Thomas [this message]
2023-12-06 10:58 ` Tvrtko Ursulin
2023-12-06 11:46 ` Hellstrom, Thomas
2023-12-07 11:11 ` Tvrtko Ursulin
2023-12-07 12:01 ` Thomas Hellström
2023-12-13 11:55 ` Tvrtko Ursulin
2023-12-13 17:27 ` Thomas Hellström
2023-12-13 17:50 ` Tvrtko Ursulin
2023-12-13 20:11 ` Thomas Hellström
2023-12-14 8:10 ` Tvrtko Ursulin
2023-12-14 10:52 ` Thomas Hellström
2023-12-14 12:34 ` Tvrtko Ursulin
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=c16bc9f7bd18f531136ebbcf6504d497db9a793a.camel@intel.com \
--to=thomas.hellstrom@intel.com \
--cc=carlos.santa@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.auld@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=tvrtko.ursulin@linux.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