From: Ben Widawsky <ben@bwidawsk.net>
To: Chris Wilson <chris@chris-wilson.co.uk>,
Ben Widawsky <benjamin.widawsky@intel.com>,
Intel GFX <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Use the new vm [un]bind functions
Date: Fri, 20 Sep 2013 14:08:34 -0700 [thread overview]
Message-ID: <20130920210833.GD22399@bwidawsk.net> (raw)
In-Reply-To: <20130920205551.GA16830@nuc-i3427.alporthouse.com>
On Fri, Sep 20, 2013 at 09:55:51PM +0100, Chris Wilson wrote:
> On Fri, Sep 20, 2013 at 01:44:23PM -0700, Ben Widawsky wrote:
> > On Fri, Sep 20, 2013 at 11:43:48AM +0100, Chris Wilson wrote:
> > > On Thu, Sep 19, 2013 at 09:06:39PM -0700, Ben Widawsky wrote:
> > > > @@ -1117,8 +1114,25 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
> > > > * batch" bit. Hence we need to pin secure batches into the global gtt.
> > > > * hsw should have this fixed, but let's be paranoid and do it
> > > > * unconditionally for now. */
> > > > - if (flags & I915_DISPATCH_SECURE && !batch_obj->has_global_gtt_mapping)
> > > > - i915_gem_gtt_bind_object(batch_obj, batch_obj->cache_level);
> > > > + if (flags & I915_DISPATCH_SECURE) {
> > > > + struct i915_address_space *ggtt = obj_to_ggtt(batch_obj);
> > > > + /* Assuming all privileged batches are in the global GTT means
> > > > + * we need to make sure we have a global gtt offset, as well as
> > > > + * the PTEs mapped. As mentioned above, we can forego this on
> > > > + * HSW, but don't.
> > > > + */
> > > > + ret = i915_gem_object_bind_to_vm(batch_obj, ggtt, 0, false,
> > > > + false);
> > > > + if (ret)
> > > > + goto err;
> > >
> > > bind_to_vm() has unwanted side-effects here - notably always allocating
> > > a node and corrupting lists.
> > >
> > > Just pin, ggtt->bind_vma, unpin. Hmmm, except that we also need a
> > > move_to_active (as we are not presuming vm == ggtt).
> > >
> > > pin, ggtt->bind_vma, move_to_active(ggtt), unpin.
> > >
> > > And then hope we have the correct flushes in place for that to be
> > > retired if nothing else is going on with that ggtt.
> >
> > Yes, you're right, and a particular nice catch on the move to active; I
> > completely forgot. I think ggtt->bind_vma is redundant though. Shouldn't
> > it just be:
> > pin, move_to_active, unpin?
>
> Since we will ask for a !map_and_fenceable pin, pin() will not
> automatically bind into the global GTT, so I think we still need the
> ggtt->bind_vma().
>
pin gets passed a VM, which will be GGTT.
>
> > Furthermore, the actually pinning (pin count increment) should be
> > unnecessary, but I assume you were just trying to save me some typing.
>
> Yes, the pin-count adjustments should be unnecessary - but not a huge
> burden, and I was thinking it may help in the future as we may want to
> explicitly hold the pin until move-to-active for all objects. That
> future being where we strive to reduce hold times on struct_mutex.
> -Chris
>
> --
> Chris Wilson, Intel Open Source Technology Centre
--
Ben Widawsky, Intel Open Source Technology Center
next prev parent reply other threads:[~2013-09-20 21:08 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-14 22:03 [PATCH 1/6] drm/i915: trace vm eviction instead of everything Ben Widawsky
2013-09-14 22:03 ` [PATCH 2/6] drm/i915: Provide a cheap ggtt vma lookup Ben Widawsky
2013-09-14 22:03 ` [PATCH 3/6] drm/i915: Convert active API to VMA Ben Widawsky
2013-09-14 22:03 ` [PATCH 4/6] drm/i915: Add bind/unbind object functions to VM Ben Widawsky
2013-09-16 9:25 ` Chris Wilson
2013-09-16 18:23 ` Ben Widawsky
2013-09-16 22:05 ` Daniel Vetter
2013-09-16 22:18 ` Chris Wilson
2013-09-16 22:20 ` Daniel Vetter
2013-09-16 22:13 ` Chris Wilson
2013-09-17 5:44 ` Ben Widawsky
2013-09-17 7:49 ` Chris Wilson
2013-09-17 17:00 ` [PATCH 4/6] [v5] " Ben Widawsky
2013-09-14 22:03 ` [PATCH 5/6] drm/i915: Use the new vm [un]bind functions Ben Widawsky
2013-09-16 7:37 ` Chris Wilson
2013-09-16 18:31 ` Ben Widawsky
2013-09-17 17:01 ` [PATCH 5/6] [v3] " Ben Widawsky
2013-09-17 20:55 ` Chris Wilson
2013-09-17 23:14 ` Ben Widawsky
2013-09-17 23:33 ` Chris Wilson
2013-09-17 23:48 ` Ben Widawsky
2013-09-17 23:57 ` Chris Wilson
2013-09-18 0:02 ` Ben Widawsky
2013-09-18 8:30 ` Chris Wilson
2013-09-18 14:47 ` Ben Widawsky
2013-09-18 14:53 ` Chris Wilson
2013-09-18 15:48 ` Ben Widawsky
2013-09-18 15:59 ` Chris Wilson
2013-09-18 16:11 ` Ben Widawsky
2013-09-18 16:15 ` Chris Wilson
2013-09-18 16:20 ` Daniel Vetter
2013-09-18 16:37 ` Ben Widawsky
2013-09-19 0:12 ` [PATCH] [v4] " Ben Widawsky
2013-09-19 9:13 ` Chris Wilson
2013-09-19 14:15 ` [PATCH] [v5] " Ben Widawsky
2013-09-19 14:26 ` Chris Wilson
2013-09-19 14:41 ` [PATCH] [v6] " Ben Widawsky
2013-09-19 14:45 ` [PATCH] [v7] " Ben Widawsky
2013-09-20 4:06 ` [PATCH] " Ben Widawsky
2013-09-20 10:43 ` Chris Wilson
2013-09-20 13:24 ` Daniel Vetter
2013-09-20 13:26 ` Daniel Vetter
2013-09-20 13:29 ` Chris Wilson
2013-09-20 20:44 ` Ben Widawsky
2013-09-20 20:55 ` Chris Wilson
2013-09-20 21:08 ` Ben Widawsky [this message]
2013-09-20 21:22 ` Daniel Vetter
2013-09-22 18:46 ` [PATCH] [v9] " Ben Widawsky
2013-09-23 8:39 ` Chris Wilson
2013-09-23 22:00 ` Ben Widawsky
2013-09-23 22:10 ` Chris Wilson
2013-09-19 14:47 ` [PATCH] [v6] " Chris Wilson
2013-09-19 17:41 ` Ben Widawsky
2013-09-19 18:36 ` Daniel Vetter
2013-09-14 22:03 ` [PATCH 6/6] drm/i915: eliminate vm->insert_entries() Ben Widawsky
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=20130920210833.GD22399@bwidawsk.net \
--to=ben@bwidawsk.net \
--cc=benjamin.widawsky@intel.com \
--cc=chris@chris-wilson.co.uk \
--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