From: Chris Wilson <chris@chris-wilson.co.uk>
To: Ben Widawsky <ben@bwidawsk.net>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Re-enable rc6 w/fix
Date: Tue, 15 Mar 2011 09:58:40 +0000 [thread overview]
Message-ID: <1bdc18$jseofn@fmsmga002.fm.intel.com> (raw)
In-Reply-To: <20110315071251.GC7406@lundgren.kumite>
On Tue, 15 Mar 2011 00:12:51 -0700, Ben Widawsky <ben@bwidawsk.net> wrote:
> On Mon, Mar 14, 2011 at 10:00:20PM -0700, Ben Widawsky wrote:
> > On Mon, Mar 14, 2011 at 09:55:01PM -0700, Ben Widawsky wrote:
> > > This fixes a race condition with MI_SET_CONTEXT and setting of the
> > > PWRCTXA register. If PWRCTXA ends up getting set before MI_SET_CONTEXT
> > > completes, it's possible that the system will enter rc6, and try to
> > > return to the default render context, which if unset, could cause a GPU
> > > hang
> > >
> > > Resolve https://bugzilla.kernel.org/show_bug.cgi?id=28582
> >
> > I'm still waiting for feedback on bugzilla if this patch works like the
> > previous. Just submitting it here for review while we wait...
>
> It appears that I've jumped the gun on this fix. I can sort of reason
> that the LOAD_REGISTER_IMM doesn't work, perhaps because somehow the
> MI_SET_CONTEXT is really slow, and the GPU executes the register load
> out of order, thus invoking the original potential race.
If in doubt add a second MI_FLUSH, that is guaranteed to block on the
retirement of the first. But I suspect the actual bug is the misuse of
LOAD_REGISTER_IMM.
> But I followed up with the i915_gpu_idle(), and that too did not work...
Yeah, because the rings were idle (no outstanding requests and no active
buffers) it was a no-op. So there is no shortcut, you have to add a
request and then wait (or then idle). The alternative is to add the
HEAD!=TAIL polling to i915_gpu_idle as well, but i915_gpu_idle() is also
used during normal ops via evict_everything, so I'd rather keep it slim.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
next prev parent reply other threads:[~2011-03-15 9:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-15 4:55 [PATCH] drm/i915: Re-enable rc6 w/fix Ben Widawsky
2011-03-15 5:00 ` Ben Widawsky
2011-03-15 7:12 ` Ben Widawsky
2011-03-15 9:58 ` Chris Wilson [this message]
2011-03-15 7:59 ` Chris Wilson
2011-03-15 17:15 ` Daniel Vetter
2011-03-15 21:32 ` Florian Mickler
-- strict thread matches above, loose matches on Subject: below --
2011-03-15 4:52 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='1bdc18$jseofn@fmsmga002.fm.intel.com' \
--to=chris@chris-wilson.co.uk \
--cc=ben@bwidawsk.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.