From: Daniel Vetter <daniel@ffwll.ch>
To: akash.goel@intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Support to create uncached user mapping for a Gem object
Date: Fri, 24 Oct 2014 10:40:10 +0200 [thread overview]
Message-ID: <20141024084009.GX26941@phenom.ffwll.local> (raw)
In-Reply-To: <1414060436-29442-1-git-send-email-akash.goel@intel.com>
On Thu, Oct 23, 2014 at 04:03:56PM +0530, akash.goel@intel.com wrote:
> From: Akash Goel <akash.goel@intel.com>
>
> This patch provides support to create uncached virtual mappings for a Gem
> object. It intends to provide the same funtionality of 'mmap_gtt' interface
> without the constraints of a limited aperture space, but provided clients
> handles the linear to tile conversion on their own.
> This is for improving the CPU write operation performance, as with such
> mapping, writes are almost 50% faster than with mmap_gtt. Also it avoids the
> Cache flush after update from CPU side, when object is passed onto GPU, which
> will be the case if regular mmap ioctl interface is used.
> This type of mapping is specially useful in case of sub-region update,
> i.e. when only a portion of the object is to be updated.
> To ensure the cache coherency, before using this mapping, the GTT domain has
> been reused here. This provides the required Cache flush if the object is in
> CPU domain or synchronization against the concurrent rendering. Although the
> access through an uncached mmap shall automatically invalidate the cache lines,
> but this may not be true for non temporal write instructions and also not all
> pages of the object be updated at any given point of time through this mapping.
> Having a call to get_pages in set_to_gtt_domain function, as added by Chris in
> the earlier patch, would guarantee the clflush and so there will be no cache-
> lines holding the data for the object before it is accessed through this map.
> A new field 'flags' has been added to 'drm_i915_gem_mmap' structure, used in
> gem_mmap ioctl, which allows to convey the required mapping type as uncached.
> User can query the driver for the support of this mapping through the
> get_params. For that a new define I915_PARAM_HAS_UC_MMAP has been added.
>
> Change-Id: Ie883942f9e689525f72fe9a8d3780c3a9faa769a
> Signed-off-by: Akash Goel <akash.goel@intel.com>
Yeah, I like this. And Chris has already gone ahead and added all the
functional tests. So here's what seems to still be missing:
- Reviewing Chris' patches. Akash, can you please do that? This kind of
cross-review usually works best.
- Polish for Akash' patch according to Chris' review. Commit message also
needs to gain the performance data. And we need to have a "does PAT
work" test I think like Chris suggested.
- ioctl argument check tests for the cpu mmap ioctl. We currently have
absotutely nothing here (one of the very few cases left). So Akash, can
you please take the AR to write a new igt testcase which does all the
usual argument checking test like invalid buffer, invalid flags?
Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
next prev parent reply other threads:[~2014-10-24 8:40 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-13 13:20 [PATCH] drm/i915: Broaden application of set-domain(GTT) Chris Wilson
2014-10-14 12:47 ` Chris Wilson
2014-10-23 10:33 ` [PATCH] drm/i915: Support to create uncached user mapping for a Gem object akash.goel
2014-10-23 10:37 ` [PATCH] intel: New libdrm interface to create uncached CPU mapping akash.goel
2014-10-23 10:54 ` [PATCH] drm/i915: Support to create uncached user mapping for a Gem object Chris Wilson
2014-10-23 11:03 ` Chris Wilson
2014-10-23 11:56 ` Chris Wilson
2014-10-23 13:23 ` Chris Wilson
2014-12-10 4:48 ` Chad Versace
2014-12-10 8:02 ` Chris Wilson
2014-10-23 16:55 ` [PATCH] drm/i915: Support creation of unbound wc user mappings for objects Chris Wilson
2014-10-23 19:05 ` [PATCH 1/3] igt/gem_evict_(alignment|everything): contend with GPU hangs Chris Wilson
2014-10-23 19:05 ` [PATCH 2/3] lib/core: Check for kernel error messages and WARN if any are found Chris Wilson
2014-10-23 19:05 ` [PATCH 3/3] reg-read-8 Chris Wilson
2014-10-23 19:12 ` [PATCH 1/3] igt/gem_evict_(alignment|everything): contend with GPU hangs Chris Wilson
2014-10-23 19:11 ` [PATCH 1/3] igt/gem_mmap_wc: Exercise mmap(wc) interface Chris Wilson
2014-10-23 19:11 ` [PATCH 2/3] igt/gem_gtt_speed: compare against WC mmaps Chris Wilson
2014-10-23 19:11 ` [PATCH 3/3] igt/gem_concurrent_blit: Exercise wc mappings Chris Wilson
2014-10-25 11:51 ` [PATCH] intel: New libdrm interface to create unbound wc user mappings for objects akash.goel
2014-10-25 12:45 ` Damien Lespiau
2014-10-26 8:36 ` Akash Goel
2014-10-26 8:41 ` Chris Wilson
2014-10-28 13:09 ` [PATCH v3] " akash.goel
2014-10-28 16:11 ` Damien Lespiau
2014-12-03 14:13 ` Damien Lespiau
2014-12-03 18:18 ` Chris Wilson
2014-12-09 10:54 ` Chris Wilson
2014-12-09 16:53 ` Damien Lespiau
2014-12-14 8:41 ` [PATCH v4] " akash.goel
2016-03-09 9:09 ` [PATCH v5] " akash.goel
2016-03-10 8:39 ` Martin Peres
2016-03-14 16:51 ` Martin Peres
2016-03-15 8:41 ` Daniel Vetter
2015-03-03 14:20 ` [PATCH v3] " Damien Lespiau
2015-03-03 17:05 ` Chris Wilson
2015-03-03 17:11 ` Damien Lespiau
2015-03-03 17:13 ` Chris Wilson
2015-03-03 17:16 ` Damien Lespiau
2014-11-05 12:48 ` [PATCH] drm/i915: Support creation of " Chris Wilson
2014-11-06 14:50 ` Daniel Vetter
2014-12-17 12:46 ` Tvrtko Ursulin
2014-12-17 12:52 ` Chris Wilson
2014-10-24 8:40 ` Daniel Vetter [this message]
2014-10-24 9:23 ` [PATCH] drm/i915: Support to create uncached user mapping for a Gem object Chris Wilson
2014-11-05 12:49 ` [PATCH] drm/i915: Broaden application of set-domain(GTT) Chris Wilson
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=20141024084009.GX26941@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=akash.goel@intel.com \
--cc=intel-gfx@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