From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org, miku@iki.fi
Subject: Re: [PATCH 2/2] drm/i915: Protect engine request list with spinlock
Date: Tue, 24 Feb 2015 13:23:27 +0200 [thread overview]
Message-ID: <87pp8zft8w.fsf@gaia.fi.intel.com> (raw)
In-Reply-To: <20150224105249.GD12726@nuc-i3427.alporthouse.com>
Chris Wilson <chris@chris-wilson.co.uk> writes:
> On Tue, Feb 24, 2015 at 11:39:08AM +0100, Daniel Vetter wrote:
>> On Tue, Feb 24, 2015 at 08:31:18AM +0000, Chris Wilson wrote:
>> > On Tue, Feb 24, 2015 at 12:58:19AM +0100, Daniel Vetter wrote:
>> > > On Thu, Feb 19, 2015 at 04:41:12PM +0000, Chris Wilson wrote:
>> > > > On Thu, Feb 19, 2015 at 06:18:55PM +0200, Mika Kuoppala wrote:
>> > > > > There are multiple players interested in the ring->request_list
>> > > > > state. Request submission can happen in kernel or user context,
>> > > > > idle worker is going through request list to free items. And then there
>> > > > > is hangcheck worker which tries to figure out if particular ring is
>> > > > > healthy by peeking at the request list among other things. And if
>> > > > > judged stuck by hangcheck, error state is colleted. Which in turns
>> > > > > needs access to ring->request_list.
>> > > >
>> > > > We have discussed this before. Hangcheck does not need the lock so long
>> > > > as it is serialised with deletion. List processing with hangcheck during
>> > > > concurrent addition is safe.
>> > > >
>> > > > For example, I expect the request locking to look like
>> > > >
>> > > > http://cgit.freedesktop.org/~ickle/linux-2.6/tree/drivers/gpu/drm/i915/i915_gem_request.c#n691
>> > >
>> > > I think longer-term with per-engine reset and fun stuff like that we
>> > > probably want the spinlock, just to avoid too many headaches with locking
>> > > auditing. For the execbuf fastpath it should just be one more spinlock per
>> > > ioctl, so hopefully bearable.
>> >
>> > But it is not even the locking bug that breaks capture, so what's the
>> > point?
>>
>> Oh I've read the patch as general prep work for more finegrained reset
>> support not as a fix for the referenced bug. I guess the bug is just the
>> usual incoherent seqno/irq thing that's been plagueing us ever since gen6?
>
> I presumed Mika wants to fix that hangcheck and capture may explode as
> requests are completed concurrently. The bug that I expect will remain
> is that we peek at the bo without locks during capture.
> -Chris
>
What I think is the failure mode on [1] is:
Request gets added to the ring but not yet
into the ring->request_list, gpu finishes it and updates
the hw status page. Hangcheck runs and sees that request_list
does not contain the supposed request and complains
that the hangcheck was activated on idle ring.
https://bugs.freedesktop.org/show_bug.cgi?id=88651
-Mika
> --
> Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-02-24 11:23 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-19 16:18 [PATCH 1/2] drm/i915: Split adding request to smaller functions Mika Kuoppala
2015-02-19 16:18 ` [PATCH 2/2] drm/i915: Protect engine request list with spinlock Mika Kuoppala
2015-02-19 16:41 ` Chris Wilson
2015-02-23 23:58 ` Daniel Vetter
2015-02-24 8:31 ` Chris Wilson
2015-02-24 10:39 ` Daniel Vetter
2015-02-24 10:52 ` Chris Wilson
2015-02-24 11:23 ` Mika Kuoppala [this message]
2015-02-24 11:40 ` Chris Wilson
2015-02-24 12:57 ` Daniel Vetter
2015-02-19 16:54 ` [PATCH 1/2] drm/i915: Split adding request to smaller functions John Harrison
2015-02-20 9:16 ` Mika Kuoppala
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=87pp8zft8w.fsf@gaia.fi.intel.com \
--to=mika.kuoppala@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=miku@iki.fi \
/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