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: set ctx->initialized only after RCS
Date: Wed, 1 Jan 2014 10:10:07 -0800 [thread overview]
Message-ID: <20140101181006.GA23858@bwidawsk.net> (raw)
In-Reply-To: <20131231112617.GA1488@nuc-i3427.alporthouse.com>
On Tue, Dec 31, 2013 at 11:26:17AM +0000, Chris Wilson wrote:
> On Mon, Dec 30, 2013 at 01:34:46PM -0800, Ben Widawsky wrote:
> > On Sun, Dec 29, 2013 at 09:59:26AM +0000, Chris Wilson wrote:
> > > On Sat, Dec 28, 2013 at 01:31:49PM -0800, Ben Widawsky wrote:
> > > > The initialized flag is used to specify a context has been initialized
> > > > and it's context is safe to load, ie. the 3d state is setup properly.
> > > > With full PPGTT, we emit the address space loads during context switch
> > > > and this currently marks a context as initialized. With full PPGTT
> > > > patches, if a client first emits a batch to !RCS, then later, RCS, the
> > > > code will mistake the context as initialized and try to reload an
> > > > uninitialized context.
> > > >
> > > > 1. context 1 blit // context initialized
> > > +context marked as initialised
> > >
> > > > 2. context 2 <X operation> // saves context 1 random state
> > > > 3. context 1 render // loads random state from step 2
> > >
> > > Note that step 2 is not required since the tracking is per-ring.
> > >
> >
> > This is missing an extremely important caveat which I was
> > incorrectly correlating earlier in our discussion. Yes, step 2 is not
> > required. The step which is required is the page allocated must be
> > non-zero when allocated, and the contents of the page must be capable of
> > hanging the GPU when used as a context object.
>
> Really? I'm pretty sure the last error state we looked at, the context
> was all zeroes.
>
Well... the first page of the context is all 0.
> > Otherwise, the uninitialized context would always be all 0, which if I
> > understand the HW correctly, is "safe"
> >
> > As long as you don't disagree, I'll fix the commit message with that
> > info.
>
> Whatever you feel matches our best understanding of the problem. Just
> double check that last error state first ;-)
> -Chris
>
The real problem is that I've gone and convinced myself that no other
means exists to actually make the GPU hang. This incidentally also gives
some merit to my assumption that IPEHR is accurate through context loads
- in other words, we try to do MI_SET_CONTEXT during a MI_SET_CONTEXT.
--
Ben Widawsky, Intel Open Source Technology Center
next prev parent reply other threads:[~2014-01-01 18:10 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-28 21:31 [PATCH] drm/i915: set ctx->initialized only after RCS Ben Widawsky
2013-12-29 9:59 ` Chris Wilson
2013-12-30 21:34 ` Ben Widawsky
2013-12-31 11:26 ` Chris Wilson
2014-01-01 18:10 ` Ben Widawsky [this message]
2014-01-07 7:10 ` Daniel Vetter
2014-01-07 10:47 ` Chris Wilson
2014-01-09 23:17 ` Ben Widawsky
2014-01-10 7:18 ` Daniel Vetter
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=20140101181006.GA23858@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