diff mbox

drm/i915: Don't bail out early on i915_handle_error

Message ID 1422966445-25695-1-git-send-email-mika.kuoppala@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Mika Kuoppala Feb. 3, 2015, 12:27 p.m. UTC
If we bail out from handling the error, we never wake up
the waiters, resulting in a stuck processes.

This regression was introduced in:

commit b8d24a06568368076ebd5a858a011699a97bfa42
Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Date:   Wed Jan 28 17:03:14 2015 +0200

    drm/i915: Remove nested work in gpu error handling

References: https://bugs.freedesktop.org/show_bug.cgi?id=88933
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 3 ---
 1 file changed, 3 deletions(-)

Comments

Chris Wilson Feb. 3, 2015, 12:29 p.m. UTC | #1
On Tue, Feb 03, 2015 at 02:27:25PM +0200, Mika Kuoppala wrote:
> If we bail out from handling the error, we never wake up
> the waiters, resulting in a stuck processes.
> 
> This regression was introduced in:
> 
> commit b8d24a06568368076ebd5a858a011699a97bfa42
> Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Date:   Wed Jan 28 17:03:14 2015 +0200
> 
>     drm/i915: Remove nested work in gpu error handling
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=88933
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>

I was hoping you would also try to think of another way to detect the
race you postulated... :)
-Chris
Jani Nikula Feb. 3, 2015, 12:55 p.m. UTC | #2
On Tue, 03 Feb 2015, Mika Kuoppala <mika.kuoppala@linux.intel.com> wrote:
> If we bail out from handling the error, we never wake up
> the waiters, resulting in a stuck processes.
>
> This regression was introduced in:
>
> commit b8d24a06568368076ebd5a858a011699a97bfa42
> Author: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Date:   Wed Jan 28 17:03:14 2015 +0200
>
>     drm/i915: Remove nested work in gpu error handling
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=88933

Mika, please check and follow up with these bugs as well, and dupe as
necessary. All bisected to the same.

https://bugs.freedesktop.org/show_bug.cgi?id=88654
https://bugs.freedesktop.org/show_bug.cgi?id=88928
https://bugs.freedesktop.org/show_bug.cgi?id=88915
https://bugs.freedesktop.org/show_bug.cgi?id=88908

BR,
Jani.


> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_irq.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> index 53c5f9e..4145d95 100644
> --- a/drivers/gpu/drm/i915/i915_irq.c
> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -2612,9 +2612,6 @@ void i915_handle_error(struct drm_device *dev, bool wedged,
>  	va_list args;
>  	char error_msg[80];
>  
> -	if (WARN_ON(mutex_is_locked(&dev_priv->dev->struct_mutex)))
> -		return;
> -
>  	va_start(args, fmt);
>  	vscnprintf(error_msg, sizeof(error_msg), fmt, args);
>  	va_end(args);
> -- 
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
Shuang He Feb. 3, 2015, 1:42 p.m. UTC | #3
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 5702
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                                  283/283              283/283
ILK                 -1              319/319              318/319
SNB              +1-1              322/346              322/346
IVB              +1-1              382/384              382/384
BYT                                  296/296              296/296
HSW              +1                 425/428              426/428
BDW                 -1              319/333              318/333
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
 ILK  igt_gem_unfence_active_buffers      DMESG_WARN(1, M37)PASS(3, M26)      DMESG_WARN(1, M37)
*SNB  igt_kms_flip_event_leak      NSPT(7, M35M22)      PASS(1, M35)
*SNB  igt_kms_flip_single-buffer-flip-vs-dpms-off-vs-modeset      PASS(2, M35)      NSPT(1, M35)
*IVB  igt_gem_pwrite_pread_snooped-copy-performance      PASS(3, M34)      DMESG_WARN(1, M34)
 IVB  igt_gem_pwrite_pread_snooped-pwrite-blt-cpu_mmap-performance      DMESG_WARN(11, M34M21)PASS(10, M4M34)      PASS(1, M34)
 HSW  igt_gem_pwrite_pread_snooped-pwrite-blt-cpu_mmap-performance      DMESG_WARN(3, M40)PASS(24, M40M20)      PASS(1, M40)
*BDW  igt_gem_fence_thrash_bo-write-verify-threaded-none      PASS(3, M30)      DMESG_WARN(1, M30)
Note: You need to pay more attention to line start with '*'
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 53c5f9e..4145d95 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -2612,9 +2612,6 @@  void i915_handle_error(struct drm_device *dev, bool wedged,
 	va_list args;
 	char error_msg[80];
 
-	if (WARN_ON(mutex_is_locked(&dev_priv->dev->struct_mutex)))
-		return;
-
 	va_start(args, fmt);
 	vscnprintf(error_msg, sizeof(error_msg), fmt, args);
 	va_end(args);