public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
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 5/6] [v3] drm/i915: Use the new vm [un]bind functions
Date: Tue, 17 Sep 2013 16:48:50 -0700	[thread overview]
Message-ID: <20130917234850.GC6112@bwidawsk.net> (raw)
In-Reply-To: <20130917233332.GE24051@nuc-i3427.alporthouse.com>

On Wed, Sep 18, 2013 at 12:33:32AM +0100, Chris Wilson wrote:
> On Tue, Sep 17, 2013 at 04:14:43PM -0700, Ben Widawsky wrote:
> > On Tue, Sep 17, 2013 at 09:55:35PM +0100, Chris Wilson wrote:
> > > On Tue, Sep 17, 2013 at 10:01:33AM -0700, Ben Widawsky wrote:
> > > > @@ -1117,8 +1109,13 @@ 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 &&
> > > > +	    !batch_obj->has_global_gtt_mapping) {
> > > > +		const struct i915_address_space *ggtt = obj_to_ggtt(batch_obj);
> > > > +		struct i915_vma *vma = i915_gem_obj_to_ggtt(batch_obj);
> > > > +		BUG_ON(!vma);
> > > > +		ggtt->bind_vma(vma, batch_obj->cache_level, GLOBAL_BIND);
> > > > +	}
> > > 
> > > The issue here is that if we don't set the USE_PPGTT/USE_SECURE flag in
> > > the dispatch, the CS will use the GGTT (hence our binding) but so we
> > > then need to use the GGTT offset for the dispatch as well.
> > > 
> > > Is that as concisely as we can write bind_to_ggtt? :(
> > > -Chris
> > > 
> > 
> > Resuming the conversation started on irc... what do you want from me?
> 
> I think we need to pass the ggtt offset to dispatch for
> I915_DISPATCH_SECURE -- which offset to use might even depend upon the
> implementation and hw generation in intel_ringbuffer.c. But at the very
> least, I think SNB/IVB will be executing the wrong address come full
> ppgtt.
> 
> dev_priv->ggtt.base.bind_vma(i915_gem_obj_to_ggtt(batch_obj),
>                              batch_obj->cache_level,
> 			     GLOBAL_BIND);
> 
> #define i915_vm_bind(vm__, vma__, cache_level__, flags__) \
>  (vm__)->bind_vma((vma__), (cache_level__), (flags__))
> 
> i915_vm_bind(&dev_priv->ggtt.base,
>              i915_gem_obj_to_ggtt(batch_obj),
> 	     batch_obj->cache_level,
> 	     GLOBAL_BIND);
> -Chris
> 

I915_DISPATCH_SECURE is a special case. If we see the flag, we look up
the GGTT offset as opposed to the offset in the VM being used at
execbuf. We can either bind the batchbuffer into both the PPGTT, and
GGTT, or it's only even in the GGTT - in either case, we'll have to have
done the bind (and found space in the drm_mm). It just seems like this
is duplicating the already existing i915_gem_object_bind_to_vm code
that's in place.

Sorry if I am not following what you're asking. I'm just failing to see
a problem, or maybe you're just trying to solve problems that I haven't
yet conceived; or solved in a different way.  It's pretty darn hard to
discuss this given the piecemeal nature of the thing.

-- 
Ben Widawsky, Intel Open Source Technology Center

  reply	other threads:[~2013-09-17 23:48 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 [this message]
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
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=20130917234850.GC6112@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