From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
intel-gfx@lists.freedesktop.org,
Tomi Sarvela <tomix.p.sarvela@intel.com>
Subject: Re: [PATCH] drm/i915: Allow unready gpu to be reset on gen8
Date: Fri, 30 Oct 2015 17:18:18 +0200 [thread overview]
Message-ID: <87ziz0pepx.fsf@gaia.fi.intel.com> (raw)
In-Reply-To: <20151030145813.GV21481@nuc-i3427.alporthouse.com>
Chris Wilson <chris@chris-wilson.co.uk> writes:
> On Fri, Oct 30, 2015 at 04:43:49PM +0200, Mika Kuoppala wrote:
>> Gen9 has had demonstrated cases where forcing a not ready gpu
>> into reset has caused system hang [1].
>>
>> Gen8 has never to this date demonstrated such behaviour.
>>
>> In our CI tests bsw sometimes ends up in a state where it claims it
>> is not ready for reset, based on reset request, after gpu hang.
>>
>> Allow gen8 to reset even after claims of nonreadiness in order
>> to keep the gpu accessible. Enhance logging so that it will be
>> clear what conditions led to decision of proceeding or bailing out,
>> so that we will spot if this way of forcing our will against gpu turns
>> out to be foolhardy.
>>
>> References [1]: https://bugs.freedesktop.org/show_bug.cgi?id=89959
>> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Cc: Tomi Sarvela <tomix.p.sarvela@intel.com>
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_uncore.c | 9 ++++++++-
>> 1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
>> index f0f97b2..47c17f2 100644
>> --- a/drivers/gpu/drm/i915/intel_uncore.c
>> +++ b/drivers/gpu/drm/i915/intel_uncore.c
>> @@ -1504,7 +1504,14 @@ not_ready:
>> I915_WRITE(RING_RESET_CTL(engine->mmio_base),
>> _MASKED_BIT_DISABLE(RESET_CTL_REQUEST_RESET));
>>
>> - return -EIO;
>
> Where's the reference for where we hit this EIO on gen8?
>
Internal CI logs, relevant part cutpasted below. If you want
full log holler me in irc.
[ 119.147727] kms_pipe_crc_basic: starting subtest hang-read-crc-pipe-A
[ 124.785063] [drm] stuck on render ring
[ 124.800850] [drm] GPU HANG: ecode 8:0:0xfffffffe, in kms_pipe_crc_ba
[5590], reason: Ring hung, action: reset
[ 124.801154] [drm] GPU hangs can indicate a bug anywhere in the entire
gfx stack, including userspace.
[ 124.801161] [drm] Please file a _new_ bug report on
bugs.freedesktop.org against DRI -> DRM/Intel
[ 124.801167] [drm] drm/i915 developers can then reassign to the right
component if it's not a kernel issue.
[ 124.801173] [drm] The gpu crash dump is required to analyze gpu
hangs, so please always attach it.
[ 124.801179] [drm] GPU crash dump saved to /sys/class/drm/card0/error
[ 124.801785] kobject: 'card0' (ffff880174ad92a0): kobject_uevent_env
[ 124.801940] kobject: 'card0' (ffff880174ad92a0): fill_kobj_path: path
= '/devices/pci0000:00/0000:00:02.0/drm/card0'
[ 124.805032] kobject: 'card0' (ffff880174ad92a0): kobject_uevent_env
[ 124.805089] kobject: 'card0' (ffff880174ad92a0): fill_kobj_path: path
= '/devices/pci0000:00/0000:00:02.0/drm/card0'
[ 125.511744] [drm:gen8_do_reset [i915]] *ERROR* render ring: reset
request timeout
[ 125.511922] [drm] Simulated gpu hang, resetting stop_rings
[ 125.511927] drm/i915: Resetting chip after gpu hang
[ 125.511954] [drm:i915_reset [i915]] *ERROR* Failed to reset chip: -5
[ 125.637612] kms_pipe_crc_basic: exiting, ret=0
[ 125.653608] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring
create req: -5
[ 125.847695] gem_ctx_param_basic: executing
[ 125.850086] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring
create req: -5
[ 125.854482] gem_ctx_param_basic: exiting, ret=99
[ 126.038693] kms_addfb_basic: executing
[ 126.041754] [drm:intel_lr_context_deferred_alloc [i915]] *ERROR* ring
create req: -5
-Mika
>> + if (INTEL_INFO(dev)->gen == 9) {
>> + DRM_ERROR("Reset would risk system stability, bailing out\n");
>> + return -EIO;
>> + }
>> +
>> + DRM_ERROR("Forcing non ready gpu into reset\n");
>> +
>> + return gen6_do_reset(dev);
>> }
>>
>> static int (*intel_get_gpu_reset(struct drm_device *dev))(struct drm_device *)
>> --
>> 2.5.0
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> 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-10-30 15:19 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-30 14:43 [PATCH] drm/i915: Allow unready gpu to be reset on gen8 Mika Kuoppala
2015-10-30 14:58 ` Chris Wilson
2015-10-30 15:18 ` Mika Kuoppala [this message]
2015-10-30 15:28 ` Chris Wilson
2015-10-30 16:07 ` Mika Kuoppala
2015-11-02 8:35 ` Sarvela, TomiX P
2015-11-02 9:25 ` Mika Kuoppala
2015-11-17 17:40 ` Daniel Vetter
2015-11-19 9:41 ` Mika Kuoppala
2015-11-19 15:33 ` Daniel Vetter
2015-12-30 9:48 ` Jani Nikula
2016-01-08 16:31 ` Mika Kuoppala
2016-01-08 16:52 ` Chris Wilson
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=87ziz0pepx.fsf@gaia.fi.intel.com \
--to=mika.kuoppala@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=daniel.vetter@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=tomix.p.sarvela@intel.com \
/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