All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: fix blank screen booting crashes
@ 2021-09-21 17:43 ` Matthew Brost
  0 siblings, 0 replies; 9+ messages in thread
From: Matthew Brost @ 2021-09-21 17:43 UTC (permalink / raw)
  To: intel-gfx, dri-devel

From: Hugh Dickins <hughd@google.com>

5.15-rc1 crashes with blank screen when booting up on two ThinkPads
using i915.  Bisections converge convincingly, but arrive at different
and surprising "culprits", none of them the actual culprit.

netconsole (with init_netconsole() hacked to call i915_init() when
logging has started, instead of by module_init()) tells the story:

kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
function needs to be 4-byte aligned.

v2:
 (Jani Nikula)
  - Change BUG_ON to WARN_ON
v3:
 (Jani / Tvrtko)
  - Short circuit __i915_sw_fence_init on WARN_ON

Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
 drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
index ff637147b1a9..e7f78bc7ebfc 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
 	return 0;
 }
 
-static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
-				 enum i915_sw_fence_notify state)
+static int __i915_sw_fence_call
+sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
 {
 	return NOTIFY_DONE;
 }
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
index c589a681da77..08cea73264e7 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -13,9 +13,9 @@
 #include "i915_selftest.h"
 
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
-#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
+#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
 #else
-#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
+#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
 #endif
 
 static DEFINE_SPINLOCK(i915_sw_fence_lock);
@@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
 	i915_sw_fence_notify_t fn;
 
 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
-	return fn(fence, state);
+	if (likely(fn))
+		return fn(fence, state);
+	else
+		return 0;
 }
 
 #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
@@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
 			  const char *name,
 			  struct lock_class_key *key)
 {
-	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
-
 	__init_waitqueue_head(&fence->wait, name, key);
+	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
+		return;
 	fence->flags = (unsigned long)fn;
 
 	i915_sw_fence_reinit(fence);
@@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
 	atomic_set(&fence->pending, 1);
 	fence->error = 0;
 
-	I915_SW_FENCE_BUG_ON(!fence->flags);
-	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
+	I915_SW_FENCE_WARN_ON(!fence->flags);
+	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
 }
 
 void i915_sw_fence_commit(struct i915_sw_fence *fence)
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
@ 2021-09-21 17:43 ` Matthew Brost
  0 siblings, 0 replies; 9+ messages in thread
From: Matthew Brost @ 2021-09-21 17:43 UTC (permalink / raw)
  To: intel-gfx, dri-devel

From: Hugh Dickins <hughd@google.com>

5.15-rc1 crashes with blank screen when booting up on two ThinkPads
using i915.  Bisections converge convincingly, but arrive at different
and surprising "culprits", none of them the actual culprit.

netconsole (with init_netconsole() hacked to call i915_init() when
logging has started, instead of by module_init()) tells the story:

kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
function needs to be 4-byte aligned.

v2:
 (Jani Nikula)
  - Change BUG_ON to WARN_ON
v3:
 (Jani / Tvrtko)
  - Short circuit __i915_sw_fence_init on WARN_ON

Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
---
 drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
 drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
index ff637147b1a9..e7f78bc7ebfc 100644
--- a/drivers/gpu/drm/i915/gt/intel_context.c
+++ b/drivers/gpu/drm/i915/gt/intel_context.c
@@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
 	return 0;
 }
 
-static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
-				 enum i915_sw_fence_notify state)
+static int __i915_sw_fence_call
+sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
 {
 	return NOTIFY_DONE;
 }
diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
index c589a681da77..08cea73264e7 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence.c
@@ -13,9 +13,9 @@
 #include "i915_selftest.h"
 
 #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
-#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
+#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
 #else
-#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
+#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
 #endif
 
 static DEFINE_SPINLOCK(i915_sw_fence_lock);
@@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
 	i915_sw_fence_notify_t fn;
 
 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
-	return fn(fence, state);
+	if (likely(fn))
+		return fn(fence, state);
+	else
+		return 0;
 }
 
 #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
@@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
 			  const char *name,
 			  struct lock_class_key *key)
 {
-	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
-
 	__init_waitqueue_head(&fence->wait, name, key);
+	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
+		return;
 	fence->flags = (unsigned long)fn;
 
 	i915_sw_fence_reinit(fence);
@@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
 	atomic_set(&fence->pending, 1);
 	fence->error = 0;
 
-	I915_SW_FENCE_BUG_ON(!fence->flags);
-	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
+	I915_SW_FENCE_WARN_ON(!fence->flags);
+	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
 }
 
 void i915_sw_fence_commit(struct i915_sw_fence *fence)
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
  2021-09-21 17:43 ` [Intel-gfx] " Matthew Brost
  (?)
@ 2021-09-21 18:46 ` Lucas De Marchi
  2021-09-21 22:55   ` Matthew Brost
  -1 siblings, 1 reply; 9+ messages in thread
From: Lucas De Marchi @ 2021-09-21 18:46 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-gfx, dri-devel

On Tue, Sep 21, 2021 at 10:43:32AM -0700, Matthew Brost wrote:
>From: Hugh Dickins <hughd@google.com>
>
>5.15-rc1 crashes with blank screen when booting up on two ThinkPads
>using i915.  Bisections converge convincingly, but arrive at different
>and surprising "culprits", none of them the actual culprit.
>
>netconsole (with init_netconsole() hacked to call i915_init() when
>logging has started, instead of by module_init()) tells the story:
>
>kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
>with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
>I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
>function needs to be 4-byte aligned.
>
>v2:
> (Jani Nikula)
>  - Change BUG_ON to WARN_ON
>v3:
> (Jani / Tvrtko)
>  - Short circuit __i915_sw_fence_init on WARN_ON
>
>Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
>Signed-off-by: Hugh Dickins <hughd@google.com>
>Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>Reviewed-by: Matthew Brost <matthew.brost@intel.com>
>---
> drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
> drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
> 2 files changed, 12 insertions(+), 9 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
>index ff637147b1a9..e7f78bc7ebfc 100644
>--- a/drivers/gpu/drm/i915/gt/intel_context.c
>+++ b/drivers/gpu/drm/i915/gt/intel_context.c
>@@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
> 	return 0;
> }
>

>-static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
>-				 enum i915_sw_fence_notify state)
>+static int __i915_sw_fence_call
>+sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
> {
> 	return NOTIFY_DONE;
> }
>diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
>index c589a681da77..08cea73264e7 100644
>--- a/drivers/gpu/drm/i915/i915_sw_fence.c
>+++ b/drivers/gpu/drm/i915/i915_sw_fence.c
>@@ -13,9 +13,9 @@
> #include "i915_selftest.h"
>
> #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
>-#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
>+#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
> #else
>-#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
>+#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
> #endif
>
> static DEFINE_SPINLOCK(i915_sw_fence_lock);
>@@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
> 	i915_sw_fence_notify_t fn;
>
> 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
>-	return fn(fence, state);
>+	if (likely(fn))
>+		return fn(fence, state);
>+	else
>+		return 0;

since the knowledge for these being NULL (or with the wrong alignment)
are in the init/reinit functions,  wouldn't it be better to just add a
fence_nop() and assign it there instead this likely() here?

> }
>
> #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
>@@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
> 			  const char *name,
> 			  struct lock_class_key *key)
> {
>-	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
>-
> 	__init_waitqueue_head(&fence->wait, name, key);
>+	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
>+		return;

like:
	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
		fence->flags = (unsigned long)sw_fence_dummy_notify;
	else
		fence->flags = (unsigned long)fn;


f you return here instead of calling i915_sw_fence_reinit(), aren't you
just going to use uninitialized memory later? At least in the selftests,
which allocate it with kmalloc()... I didn't check others.


For the bug fix we could just add the __aligned(4) and leave the rest to a
separate patch.


Lucas De Marchi

> 	fence->flags = (unsigned long)fn;
>
> 	i915_sw_fence_reinit(fence);
>@@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
> 	atomic_set(&fence->pending, 1);
> 	fence->error = 0;
>
>-	I915_SW_FENCE_BUG_ON(!fence->flags);
>-	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
>+	I915_SW_FENCE_WARN_ON(!fence->flags);
>+	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
> }
>
> void i915_sw_fence_commit(struct i915_sw_fence *fence)
>-- 
>2.32.0
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: fix blank screen booting crashes (rev3)
  2021-09-21 17:43 ` [Intel-gfx] " Matthew Brost
  (?)
  (?)
@ 2021-09-21 20:24 ` Patchwork
  -1 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-09-21 20:24 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 11875 bytes --]

== Series Details ==

Series: drm/i915: fix blank screen booting crashes (rev3)
URL   : https://patchwork.freedesktop.org/series/94822/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10621 -> Patchwork_21117
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_21117:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_module_load@reload:
    - {fi-ehl-2}:         [INCOMPLETE][1] ([i915#4136]) -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-ehl-2/igt@i915_module_load@reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-ehl-2/igt@i915_module_load@reload.html

  
Known issues
------------

  Here are the changes found in Patchwork_21117 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@query-info:
    - fi-glk-dsi:         NOTRUN -> [SKIP][3] ([fdo#109271]) +17 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-glk-dsi/igt@amdgpu/amd_basic@query-info.html

  * igt@amdgpu/amd_basic@semaphore:
    - fi-icl-y:           NOTRUN -> [SKIP][4] ([fdo#109315]) +17 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-icl-y/igt@amdgpu/amd_basic@semaphore.html
    - fi-bdw-5557u:       NOTRUN -> [SKIP][5] ([fdo#109271]) +23 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-bdw-5557u/igt@amdgpu/amd_basic@semaphore.html

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
    - fi-snb-2600:        NOTRUN -> [SKIP][6] ([fdo#109271]) +18 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-snb-2600/igt@amdgpu/amd_cs_nop@sync-fork-compute0.html

  * igt@amdgpu/amd_cs_nop@sync-fork-gfx0:
    - fi-skl-6600u:       NOTRUN -> [SKIP][7] ([fdo#109271]) +17 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-skl-6600u/igt@amdgpu/amd_cs_nop@sync-fork-gfx0.html

  * igt@core_hotunplug@unbind-rebind:
    - fi-tgl-1115g4:      NOTRUN -> [INCOMPLETE][8] ([i915#4130])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
    - fi-bxt-dsi:         [PASS][9] -> [INCOMPLETE][10] ([i915#4130] / [i915#4136])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-bxt-dsi/igt@core_hotunplug@unbind-rebind.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-bxt-dsi/igt@core_hotunplug@unbind-rebind.html
    - fi-icl-u2:          [PASS][11] -> [INCOMPLETE][12] ([i915#4130] / [i915#4136])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-icl-u2/igt@core_hotunplug@unbind-rebind.html
    - fi-bdw-5557u:       NOTRUN -> [WARN][13] ([i915#3718])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-bdw-5557u/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-soraka:      [PASS][14] -> [INCOMPLETE][15] ([i915#155])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-kbl-soraka/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][16] ([i915#2190])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html

  * igt@i915_module_load@reload:
    - fi-snb-2520m:       [PASS][17] -> [INCOMPLETE][18] ([i915#4179])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-snb-2520m/igt@i915_module_load@reload.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-snb-2520m/igt@i915_module_load@reload.html
    - fi-bsw-kefka:       [PASS][19] -> [INCOMPLETE][20] ([i915#4136] / [i915#4179])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-bsw-kefka/igt@i915_module_load@reload.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-bsw-kefka/igt@i915_module_load@reload.html
    - fi-kbl-7567u:       NOTRUN -> [INCOMPLETE][21] ([i915#4130] / [i915#4136] / [i915#4179])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-kbl-7567u/igt@i915_module_load@reload.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][22] ([i915#1155])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][23] ([fdo#111827]) +8 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][24] ([i915#4103]) +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][25] ([fdo#109285])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][26] ([i915#1072]) +3 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][27] ([i915#3301])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-bsw-kefka:       NOTRUN -> [FAIL][28] ([i915#3690])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-bsw-kefka/igt@runner@aborted.html
    - fi-snb-2520m:       NOTRUN -> [FAIL][29] ([i915#2426])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-snb-2520m/igt@runner@aborted.html
    - fi-cml-u2:          NOTRUN -> [FAIL][30] ([i915#2082] / [i915#2426] / [i915#3363])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-cml-u2/igt@runner@aborted.html
    - fi-tgl-1115g4:      NOTRUN -> [FAIL][31] ([i915#1602] / [i915#2722])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-tgl-1115g4/igt@runner@aborted.html
    - fi-kbl-7567u:       NOTRUN -> [FAIL][32] ([i915#2426] / [i915#3363])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-kbl-7567u/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-kbl-7567u:       [INCOMPLETE][33] ([i915#4130]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_module_load@reload:
    - fi-glk-dsi:         [INCOMPLETE][35] ([i915#4130] / [i915#4136]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-glk-dsi/igt@i915_module_load@reload.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-glk-dsi/igt@i915_module_load@reload.html
    - fi-snb-2600:        [INCOMPLETE][37] ([i915#4179]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-snb-2600/igt@i915_module_load@reload.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-snb-2600/igt@i915_module_load@reload.html
    - fi-icl-y:           [INCOMPLETE][39] ([i915#4130] / [i915#4136]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-icl-y/igt@i915_module_load@reload.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-icl-y/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6600u:       [INCOMPLETE][41] ([i915#151]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html

  
#### Warnings ####

  * igt@i915_module_load@reload:
    - fi-kbl-8809g:       [INCOMPLETE][43] ([i915#4136]) -> [INCOMPLETE][44] ([i915#4130] / [i915#4136])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-kbl-8809g/igt@i915_module_load@reload.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-kbl-8809g/igt@i915_module_load@reload.html
    - fi-cml-u2:          [INCOMPLETE][45] ([i915#4136]) -> [INCOMPLETE][46] ([i915#4130] / [i915#4136])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/fi-cml-u2/igt@i915_module_load@reload.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/fi-cml-u2/igt@i915_module_load@reload.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#151]: https://gitlab.freedesktop.org/drm/intel/issues/151
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1602]: https://gitlab.freedesktop.org/drm/intel/issues/1602
  [i915#2082]: https://gitlab.freedesktop.org/drm/intel/issues/2082
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
  [i915#2932]: https://gitlab.freedesktop.org/drm/intel/issues/2932
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
  [i915#3690]: https://gitlab.freedesktop.org/drm/intel/issues/3690
  [i915#3718]: https://gitlab.freedesktop.org/drm/intel/issues/3718
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4130]: https://gitlab.freedesktop.org/drm/intel/issues/4130
  [i915#4136]: https://gitlab.freedesktop.org/drm/intel/issues/4136
  [i915#4179]: https://gitlab.freedesktop.org/drm/intel/issues/4179


Participating hosts (34 -> 31)
------------------------------

  Additional (1): fi-tgl-1115g4 
  Missing    (4): fi-bdw-samus fi-bsw-cyan bat-jsl-1 bat-dg1-6 


Build changes
-------------

  * Linux: CI_DRM_10621 -> Patchwork_21117

  CI-20190529: 20190529
  CI_DRM_10621: a24155d542614740119089c115fc777a0fa27587 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6214: 13550e92c6c7bd825abb6c9b087d12a524b4674c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_21117: d50a5546f0cc4cce24fac87bc1c9dde429c33d3f @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

d50a5546f0cc drm/i915: fix blank screen booting crashes

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/index.html

[-- Attachment #2: Type: text/html, Size: 14846 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
  2021-09-21 18:46 ` Lucas De Marchi
@ 2021-09-21 22:55   ` Matthew Brost
  2021-09-21 23:29     ` Lucas De Marchi
  0 siblings, 1 reply; 9+ messages in thread
From: Matthew Brost @ 2021-09-21 22:55 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx, dri-devel

On Tue, Sep 21, 2021 at 11:46:37AM -0700, Lucas De Marchi wrote:
> On Tue, Sep 21, 2021 at 10:43:32AM -0700, Matthew Brost wrote:
> > From: Hugh Dickins <hughd@google.com>
> > 
> > 5.15-rc1 crashes with blank screen when booting up on two ThinkPads
> > using i915.  Bisections converge convincingly, but arrive at different
> > and surprising "culprits", none of them the actual culprit.
> > 
> > netconsole (with init_netconsole() hacked to call i915_init() when
> > logging has started, instead of by module_init()) tells the story:
> > 
> > kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
> > with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
> > I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
> > function needs to be 4-byte aligned.
> > 
> > v2:
> > (Jani Nikula)
> >  - Change BUG_ON to WARN_ON
> > v3:
> > (Jani / Tvrtko)
> >  - Short circuit __i915_sw_fence_init on WARN_ON
> > 
> > Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
> > Signed-off-by: Hugh Dickins <hughd@google.com>
> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> > ---
> > drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
> > drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
> > 2 files changed, 12 insertions(+), 9 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
> > index ff637147b1a9..e7f78bc7ebfc 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_context.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_context.c
> > @@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
> > 	return 0;
> > }
> > 
> 
> > -static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
> > -				 enum i915_sw_fence_notify state)
> > +static int __i915_sw_fence_call
> > +sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
> > {
> > 	return NOTIFY_DONE;
> > }
> > diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
> > index c589a681da77..08cea73264e7 100644
> > --- a/drivers/gpu/drm/i915/i915_sw_fence.c
> > +++ b/drivers/gpu/drm/i915/i915_sw_fence.c
> > @@ -13,9 +13,9 @@
> > #include "i915_selftest.h"
> > 
> > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
> > -#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
> > +#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
> > #else
> > -#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
> > +#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
> > #endif
> > 
> > static DEFINE_SPINLOCK(i915_sw_fence_lock);
> > @@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
> > 	i915_sw_fence_notify_t fn;
> > 
> > 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
> > -	return fn(fence, state);
> > +	if (likely(fn))
> > +		return fn(fence, state);
> > +	else
> > +		return 0;
> 
> since the knowledge for these being NULL (or with the wrong alignment)
> are in the init/reinit functions,  wouldn't it be better to just add a
> fence_nop() and assign it there instead this likely() here?
> 

Maybe? I prefer the way it is.

> > }
> > 
> > #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
> > @@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
> > 			  const char *name,
> > 			  struct lock_class_key *key)
> > {
> > -	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
> > -
> > 	__init_waitqueue_head(&fence->wait, name, key);
> > +	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
> > +		return;
> 
> like:
> 	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
> 		fence->flags = (unsigned long)sw_fence_dummy_notify;
> 	else
> 		fence->flags = (unsigned long)fn;
> 
> 
> f you return here instead of calling i915_sw_fence_reinit(), aren't you
> just going to use uninitialized memory later? At least in the selftests,
> which allocate it with kmalloc()... I didn't check others.
> 

I don't think so, maybe the fence won't work but it won't blow up
either.

> 
> For the bug fix we could just add the __aligned(4) and leave the rest to a
> separate patch.
> 

The bug was sw_fence_dummy_notify in gt/intel_context.c was not 4 byte
align which triggered a BUG_ON during boot which blank screened a
laptop. Jani / Tvrtko suggested that we make the BUG_ON to WARN_ONs so
if someone makes this mistake in the future kernel should boot albiet
with a WARNING.

The long term fix is just pull out the I915_SW_FENCE_MASK (stealing bits
from a poitner) and we don't have to worry any of this.

Matt

> 
> Lucas De Marchi
> 
> > 	fence->flags = (unsigned long)fn;
> > 
> > 	i915_sw_fence_reinit(fence);
> > @@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
> > 	atomic_set(&fence->pending, 1);
> > 	fence->error = 0;
> > 
> > -	I915_SW_FENCE_BUG_ON(!fence->flags);
> > -	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
> > +	I915_SW_FENCE_WARN_ON(!fence->flags);
> > +	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
> > }
> > 
> > void i915_sw_fence_commit(struct i915_sw_fence *fence)
> > -- 
> > 2.32.0
> > 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
  2021-09-21 22:55   ` Matthew Brost
@ 2021-09-21 23:29     ` Lucas De Marchi
  2021-09-22  1:40       ` Matthew Brost
  0 siblings, 1 reply; 9+ messages in thread
From: Lucas De Marchi @ 2021-09-21 23:29 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-gfx, dri-devel

On Tue, Sep 21, 2021 at 03:55:15PM -0700, Matthew Brost wrote:
>On Tue, Sep 21, 2021 at 11:46:37AM -0700, Lucas De Marchi wrote:
>> On Tue, Sep 21, 2021 at 10:43:32AM -0700, Matthew Brost wrote:
>> > From: Hugh Dickins <hughd@google.com>
>> >
>> > 5.15-rc1 crashes with blank screen when booting up on two ThinkPads
>> > using i915.  Bisections converge convincingly, but arrive at different
>> > and surprising "culprits", none of them the actual culprit.
>> >
>> > netconsole (with init_netconsole() hacked to call i915_init() when
>> > logging has started, instead of by module_init()) tells the story:
>> >
>> > kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
>> > with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
>> > I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
>> > function needs to be 4-byte aligned.
>> >
>> > v2:
>> > (Jani Nikula)
>> >  - Change BUG_ON to WARN_ON
>> > v3:
>> > (Jani / Tvrtko)
>> >  - Short circuit __i915_sw_fence_init on WARN_ON
>> >
>> > Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
>> > Signed-off-by: Hugh Dickins <hughd@google.com>
>> > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>> > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
>> > ---
>> > drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
>> > drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
>> > 2 files changed, 12 insertions(+), 9 deletions(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
>> > index ff637147b1a9..e7f78bc7ebfc 100644
>> > --- a/drivers/gpu/drm/i915/gt/intel_context.c
>> > +++ b/drivers/gpu/drm/i915/gt/intel_context.c
>> > @@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
>> > 	return 0;
>> > }
>> >
>>
>> > -static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
>> > -				 enum i915_sw_fence_notify state)
>> > +static int __i915_sw_fence_call
>> > +sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
>> > {
>> > 	return NOTIFY_DONE;
>> > }
>> > diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
>> > index c589a681da77..08cea73264e7 100644
>> > --- a/drivers/gpu/drm/i915/i915_sw_fence.c
>> > +++ b/drivers/gpu/drm/i915/i915_sw_fence.c
>> > @@ -13,9 +13,9 @@
>> > #include "i915_selftest.h"
>> >
>> > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
>> > -#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
>> > +#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
>> > #else
>> > -#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
>> > +#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
>> > #endif
>> >
>> > static DEFINE_SPINLOCK(i915_sw_fence_lock);
>> > @@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
>> > 	i915_sw_fence_notify_t fn;
>> >
>> > 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
>> > -	return fn(fence, state);
>> > +	if (likely(fn))
>> > +		return fn(fence, state);
>> > +	else
>> > +		return 0;
>>
>> since the knowledge for these being NULL (or with the wrong alignment)
>> are in the init/reinit functions,  wouldn't it be better to just add a
>> fence_nop() and assign it there instead this likely() here?
>>
>
>Maybe? I prefer the way it is.
>
>> > }
>> >
>> > #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
>> > @@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
>> > 			  const char *name,
>> > 			  struct lock_class_key *key)
>> > {
>> > -	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
>> > -
>> > 	__init_waitqueue_head(&fence->wait, name, key);
>> > +	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
>> > +		return;
>>
>> like:
>> 	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
>> 		fence->flags = (unsigned long)sw_fence_dummy_notify;
>> 	else
>> 		fence->flags = (unsigned long)fn;
>>
>>
>> f you return here instead of calling i915_sw_fence_reinit(), aren't you
>> just going to use uninitialized memory later? At least in the selftests,
>> which allocate it with kmalloc()... I didn't check others.
>>
>
>I don't think so, maybe the fence won't work but it won't blow up
>either.
>
>>
>> For the bug fix we could just add the __aligned(4) and leave the rest to a
>> separate patch.
>>
>
>The bug was sw_fence_dummy_notify in gt/intel_context.c was not 4 byte
>align which triggered a BUG_ON during boot which blank screened a
>laptop. Jani / Tvrtko suggested that we make the BUG_ON to WARN_ONs so
>if someone makes this mistake in the future kernel should boot albiet
>with a WARNING.

yes, I understood. But afaics with WARN_ON you are allowing it to
continue and may be using uninitialized memory later, just causing other
problems down the line, which may be equally difficult to debug.

what I suggested is that there is the easy fix to apply to the current
rcX kernel, adding __aligned(4) to sw_fence_dummy_notify() (patch 1).
And there is the additional protection being added here (patch 2) which
is subject to the debate.

>
>The long term fix is just pull out the I915_SW_FENCE_MASK (stealing bits
>from a poitner) and we don't have to worry any of this.

Patch 2 may not even be needed if you're going that route. But we are
not only protecting against unaligned, but also from code calling
i915_sw_fence_init() with a NULL fn. 

Lucas De Marchi

>
>Matt
>
>>
>> Lucas De Marchi
>>
>> > 	fence->flags = (unsigned long)fn;
>> >
>> > 	i915_sw_fence_reinit(fence);
>> > @@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
>> > 	atomic_set(&fence->pending, 1);
>> > 	fence->error = 0;
>> >
>> > -	I915_SW_FENCE_BUG_ON(!fence->flags);
>> > -	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
>> > +	I915_SW_FENCE_WARN_ON(!fence->flags);
>> > +	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
>> > }
>> >
>> > void i915_sw_fence_commit(struct i915_sw_fence *fence)
>> > --
>> > 2.32.0
>> >

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: fix blank screen booting crashes (rev3)
  2021-09-21 17:43 ` [Intel-gfx] " Matthew Brost
                   ` (2 preceding siblings ...)
  (?)
@ 2021-09-22  0:06 ` Patchwork
  -1 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2021-09-22  0:06 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 30272 bytes --]

== Series Details ==

Series: drm/i915: fix blank screen booting crashes (rev3)
URL   : https://patchwork.freedesktop.org/series/94822/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10621_full -> Patchwork_21117_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_21117_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_21117_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_21117_full:

### IGT changes ###

#### Possible regressions ####

  * igt@perf_pmu@rc6-suspend:
    - shard-snb:          NOTRUN -> [INCOMPLETE][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-snb6/igt@perf_pmu@rc6-suspend.html

  
Known issues
------------

  Here are the changes found in Patchwork_21117_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-glk:          [PASS][2] -> [INCOMPLETE][3] ([i915#4130] / [i915#4136])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-glk8/igt@core_hotunplug@unbind-rebind.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-glk1/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_create@create-massive:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][4] ([i915#3002])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb5/igt@gem_create@create-massive.html

  * igt@gem_ctx_persistence@engines-persistence:
    - shard-snb:          NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#1099]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-snb5/igt@gem_ctx_persistence@engines-persistence.html

  * igt@gem_eio@kms:
    - shard-glk:          [PASS][6] -> [INCOMPLETE][7] ([i915#3726])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-glk6/igt@gem_eio@kms.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-glk6/igt@gem_eio@kms.html

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [PASS][8] -> [TIMEOUT][9] ([i915#2369] / [i915#2481] / [i915#3070])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb4/igt@gem_eio@unwedge-stress.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb4/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-apl:          NOTRUN -> [FAIL][10] ([i915#2846])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-glk:          [PASS][11] -> [FAIL][12] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-glk5/igt@gem_exec_fair@basic-none-vip@rcs0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-glk5/igt@gem_exec_fair@basic-none-vip@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb4/igt@gem_exec_fair@basic-pace@bcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb4/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-tglb:         [PASS][15] -> [FAIL][16] ([i915#2842]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb8/igt@gem_exec_fair@basic-pace@vecs0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb2/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-iclb:         NOTRUN -> [INCOMPLETE][17] ([i915#4173])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [PASS][18] -> [SKIP][19] ([i915#2190])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb1/igt@gem_huc_copy@huc-copy.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb6/igt@gem_huc_copy@huc-copy.html

  * igt@gem_softpin@allocator-evict-all-engines:
    - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#4171])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-glk3/igt@gem_softpin@allocator-evict-all-engines.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-glk8/igt@gem_softpin@allocator-evict-all-engines.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-kbl:          NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#3323])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl2/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@input-checking:
    - shard-apl:          NOTRUN -> [DMESG-WARN][23] ([i915#3002])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@gem_userptr_blits@input-checking.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-tglb:         NOTRUN -> [SKIP][24] ([i915#2856])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@gen9_exec_parse@bb-start-out.html

  * igt@i915_pm_dc@dc5-dpms:
    - shard-skl:          [PASS][25] -> [INCOMPLETE][26] ([i915#198])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl10/igt@i915_pm_dc@dc5-dpms.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl7/igt@i915_pm_dc@dc5-dpms.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-skl:          NOTRUN -> [SKIP][27] ([fdo#109271] / [i915#3777])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#3777])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-apl:          NOTRUN -> [SKIP][29] ([fdo#109271] / [i915#3777])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([fdo#111615])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#3886]) +5 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-skl:          NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#3886]) +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-kbl:          NOTRUN -> [SKIP][33] ([fdo#109271] / [i915#3886]) +4 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl3/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@hdmi-edid-change-during-suspend:
    - shard-apl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +12 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@kms_chamelium@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium@hdmi-hpd-storm-disable:
    - shard-kbl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl3/igt@kms_chamelium@hdmi-hpd-storm-disable.html

  * igt@kms_color_chamelium@pipe-a-ctm-blue-to-red:
    - shard-skl:          NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@kms_color_chamelium@pipe-a-ctm-blue-to-red.html

  * igt@kms_color_chamelium@pipe-b-ctm-negative:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_color_chamelium@pipe-b-ctm-negative.html

  * igt@kms_color_chamelium@pipe-c-ctm-red-to-blue:
    - shard-snb:          NOTRUN -> [SKIP][38] ([fdo#109271] / [fdo#111827]) +14 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-snb7/igt@kms_color_chamelium@pipe-c-ctm-red-to-blue.html

  * igt@kms_content_protection@atomic:
    - shard-apl:          NOTRUN -> [TIMEOUT][39] ([i915#1319])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_content_protection@atomic.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([i915#3319])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-max-size-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3359]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-max-size-onscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-apl:          NOTRUN -> [DMESG-WARN][42] ([i915#180])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x170-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([fdo#109279] / [i915#3359]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_cursor_crc@pipe-d-cursor-512x170-onscreen.html

  * igt@kms_cursor_crc@pipe-d-cursor-suspend:
    - shard-tglb:         [PASS][44] -> [INCOMPLETE][45] ([i915#2411])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-suspend.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb7/igt@kms_cursor_crc@pipe-d-cursor-suspend.html

  * igt@kms_cursor_edge_walk@pipe-d-128x128-right-edge:
    - shard-snb:          NOTRUN -> [SKIP][46] ([fdo#109271]) +242 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-snb2/igt@kms_cursor_edge_walk@pipe-d-128x128-right-edge.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-legacy:
    - shard-iclb:         NOTRUN -> [SKIP][47] ([fdo#109274] / [fdo#109278])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@kms_cursor_legacy@cursorb-vs-flipb-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-skl:          [PASS][48] -> [FAIL][49] ([i915#2346] / [i915#533])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@flip-vs-expired-vblank@a-edp1:
    - shard-skl:          [PASS][50] -> [FAIL][51] ([i915#79]) +2 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl9/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl2/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          [PASS][52] -> [DMESG-WARN][53] ([i915#180]) +3 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl2/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][54] ([i915#180]) +3 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl3/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-skl:          NOTRUN -> [SKIP][55] ([fdo#109271]) +50 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-iclb:         NOTRUN -> [SKIP][56] ([fdo#109280])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([fdo#111825]) +4 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
    - shard-kbl:          NOTRUN -> [SKIP][58] ([fdo#109271]) +114 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl3/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html

  * igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c:
    - shard-apl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +160 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
    - shard-apl:          NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#533])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [PASS][61] -> [DMESG-WARN][62] ([i915#180]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
    - shard-tglb:         [PASS][63] -> [INCOMPLETE][64] ([i915#2828] / [i915#456])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb7/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
    - shard-skl:          NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#533])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
    - shard-tglb:         [PASS][66] -> [INCOMPLETE][67] ([i915#4182])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
    - shard-apl:          NOTRUN -> [FAIL][68] ([fdo#108145] / [i915#265]) +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][69] -> [FAIL][70] ([fdo#108145] / [i915#265])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
    - shard-kbl:          NOTRUN -> [FAIL][71] ([fdo#108145] / [i915#265])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl2/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb:
    - shard-apl:          NOTRUN -> [FAIL][72] ([i915#265])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@kms_plane_alpha_blend@pipe-c-alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@pipe-d-coverage-vs-premult-vs-constant:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109278])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@kms_plane_alpha_blend@pipe-d-coverage-vs-premult-vs-constant.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3:
    - shard-iclb:         NOTRUN -> [SKIP][74] ([i915#658])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4:
    - shard-kbl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#658]) +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-4.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5:
    - shard-tglb:         NOTRUN -> [SKIP][76] ([i915#2920])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-2:
    - shard-apl:          NOTRUN -> [SKIP][77] ([fdo#109271] / [i915#658]) +2 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_psr2_sf@plane-move-sf-dmg-area-2.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][78] -> [SKIP][79] ([fdo#109642] / [fdo#111068] / [i915#658])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb8/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][80] -> [SKIP][81] ([fdo#109441]) +3 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_sysfs_edid_timing:
    - shard-apl:          NOTRUN -> [FAIL][82] ([IGT#2])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl6/igt@kms_sysfs_edid_timing.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-kbl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#2437])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl3/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@nouveau_crc@pipe-a-ctx-flip-skip-current-frame:
    - shard-iclb:         NOTRUN -> [SKIP][84] ([i915#2530])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@nouveau_crc@pipe-a-ctx-flip-skip-current-frame.html

  * igt@nouveau_crc@pipe-a-source-outp-complete:
    - shard-tglb:         NOTRUN -> [SKIP][85] ([i915#2530]) +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@nouveau_crc@pipe-a-source-outp-complete.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [PASS][86] -> [FAIL][87] ([i915#1542])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb3/igt@perf@polling-parameterized.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb7/igt@perf@polling-parameterized.html

  * igt@perf_pmu@module-unload:
    - shard-skl:          NOTRUN -> [DMESG-WARN][88] ([i915#1982] / [i915#262])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@perf_pmu@module-unload.html

  * igt@perf_pmu@rc6-suspend:
    - shard-tglb:         [PASS][89] -> [INCOMPLETE][90] ([i915#456])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb3/igt@perf_pmu@rc6-suspend.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@perf_pmu@rc6-suspend.html

  * igt@prime_nv_api@i915_nv_import_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([fdo#109291]) +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb5/igt@prime_nv_api@i915_nv_import_twice_check_flink_name.html

  * igt@prime_nv_api@nv_self_import:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([fdo#109291])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@prime_nv_api@nv_self_import.html

  * igt@sysfs_clients@fair-0:
    - shard-skl:          NOTRUN -> [SKIP][93] ([fdo#109271] / [i915#2994])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl4/igt@sysfs_clients@fair-0.html

  * igt@sysfs_clients@recycle-many:
    - shard-apl:          NOTRUN -> [SKIP][94] ([fdo#109271] / [i915#2994])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@sysfs_clients@recycle-many.html

  * igt@sysfs_clients@split-50:
    - shard-tglb:         NOTRUN -> [SKIP][95] ([i915#2994])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@sysfs_clients@split-50.html

  * igt@sysfs_heartbeat_interval@mixed@rcs0:
    - shard-skl:          [PASS][96] -> [FAIL][97] ([i915#1731]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl6/igt@sysfs_heartbeat_interval@mixed@rcs0.html

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-iclb:         [INCOMPLETE][98] ([i915#4130] / [i915#4136]) -> [PASS][99]
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb5/igt@core_hotunplug@unbind-rebind.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-kbl:          [DMESG-WARN][100] ([i915#180]) -> [PASS][101] +3 similar issues
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-kbl4/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl2/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-kbl:          [FAIL][102] ([i915#2842]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-kbl4/igt@gem_exec_fair@basic-pace@rcs0.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl7/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-kbl:          [INCOMPLETE][106] ([i915#155] / [i915#794]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-kbl2/igt@gem_workarounds@suspend-resume-fd.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl6/igt@gem_workarounds@suspend-resume-fd.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-tglb:         [INCOMPLETE][108] ([i915#456]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb7/igt@i915_suspend@fence-restore-untiled.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb1/igt@i915_suspend@fence-restore-untiled.html

  * igt@i915_suspend@forcewake:
    - shard-apl:          [DMESG-WARN][110] ([i915#180]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-apl1/igt@i915_suspend@forcewake.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-apl7/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_legacy@flip-vs-cursor-toggle:
    - shard-skl:          [FAIL][112] ([i915#2346]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl4/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl9/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html

  * igt@kms_draw_crc@draw-method-xrgb8888-pwrite-ytiled:
    - shard-skl:          [DMESG-WARN][114] ([i915#1982]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl10/igt@kms_draw_crc@draw-method-xrgb8888-pwrite-ytiled.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl2/igt@kms_draw_crc@draw-method-xrgb8888-pwrite-ytiled.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1:
    - shard-skl:          [FAIL][116] ([i915#79]) -> [PASS][117] +1 similar issue
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl4/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-edp1.html

  * igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1:
    - shard-skl:          [FAIL][118] ([i915#2122]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl1/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl1/igt@kms_flip@plain-flip-fb-recreate-interruptible@b-edp1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile:
    - shard-iclb:         [SKIP][120] ([i915#3701]) -> [PASS][121] +1 similar issue
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb5/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [SKIP][122] ([fdo#109441]) -> [PASS][123] +1 similar issue
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb6/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [DMESG-WARN][124] ([i915#180] / [i915#295]) -> [PASS][125]
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-kbl7/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-kbl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend:
    - shard-tglb:         [INCOMPLETE][126] ([i915#2828] / [i915#456]) -> [PASS][127] +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-tglb7/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-tglb5/igt@kms_vblank@pipe-b-ts-continuation-dpms-suspend.html

  * igt@perf@polling-small-buf:
    - shard-skl:          [FAIL][128] ([i915#1722]) -> [PASS][129]
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-skl4/igt@perf@polling-small-buf.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-skl3/igt@perf@polling-small-buf.html

  
#### Warnings ####

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         [SKIP][130] ([i915#588]) -> [SKIP][131] ([i915#658])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb1/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-iclb:         [WARN][132] ([i915#2684]) -> [WARN][133] ([i915#1804] / [i915#2684])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb5/igt@i915_pm_rc6_residency@rc6-fence.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb6/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-0:
    - shard-iclb:         [SKIP][134] ([i915#658]) -> [SKIP][135] ([i915#2920]) +1 similar issue
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb1/igt@kms_psr2_sf@plane-move-sf-dmg-area-0.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area-0.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-3:
    - shard-iclb:         [SKIP][136] ([i915#2920]) -> [SKIP][137] ([i915#658]) +1 similar issue
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10621/shard-iclb2/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/shard-iclb1/igt@kms_psr2_sf@plane-move-sf-dmg-area-3.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [FAIL][138] ([i915#4148]) -> [SKIP][139] ([fdo#109642] / [fdo#1110

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21117/index.html

[-- Attachment #2: Type: text/html, Size: 33519 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
  2021-09-21 23:29     ` Lucas De Marchi
@ 2021-09-22  1:40       ` Matthew Brost
  2021-09-22 21:37         ` Lucas De Marchi
  0 siblings, 1 reply; 9+ messages in thread
From: Matthew Brost @ 2021-09-22  1:40 UTC (permalink / raw)
  To: Lucas De Marchi; +Cc: intel-gfx, dri-devel

On Tue, Sep 21, 2021 at 04:29:31PM -0700, Lucas De Marchi wrote:
> On Tue, Sep 21, 2021 at 03:55:15PM -0700, Matthew Brost wrote:
> > On Tue, Sep 21, 2021 at 11:46:37AM -0700, Lucas De Marchi wrote:
> > > On Tue, Sep 21, 2021 at 10:43:32AM -0700, Matthew Brost wrote:
> > > > From: Hugh Dickins <hughd@google.com>
> > > >
> > > > 5.15-rc1 crashes with blank screen when booting up on two ThinkPads
> > > > using i915.  Bisections converge convincingly, but arrive at different
> > > > and surprising "culprits", none of them the actual culprit.
> > > >
> > > > netconsole (with init_netconsole() hacked to call i915_init() when
> > > > logging has started, instead of by module_init()) tells the story:
> > > >
> > > > kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
> > > > with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
> > > > I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
> > > > function needs to be 4-byte aligned.
> > > >
> > > > v2:
> > > > (Jani Nikula)
> > > >  - Change BUG_ON to WARN_ON
> > > > v3:
> > > > (Jani / Tvrtko)
> > > >  - Short circuit __i915_sw_fence_init on WARN_ON
> > > >
> > > > Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
> > > > Signed-off-by: Hugh Dickins <hughd@google.com>
> > > > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
> > > > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
> > > > ---
> > > > drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
> > > > drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
> > > > 2 files changed, 12 insertions(+), 9 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
> > > > index ff637147b1a9..e7f78bc7ebfc 100644
> > > > --- a/drivers/gpu/drm/i915/gt/intel_context.c
> > > > +++ b/drivers/gpu/drm/i915/gt/intel_context.c
> > > > @@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
> > > > 	return 0;
> > > > }
> > > >
> > > 
> > > > -static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
> > > > -				 enum i915_sw_fence_notify state)
> > > > +static int __i915_sw_fence_call
> > > > +sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
> > > > {
> > > > 	return NOTIFY_DONE;
> > > > }
> > > > diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
> > > > index c589a681da77..08cea73264e7 100644
> > > > --- a/drivers/gpu/drm/i915/i915_sw_fence.c
> > > > +++ b/drivers/gpu/drm/i915/i915_sw_fence.c
> > > > @@ -13,9 +13,9 @@
> > > > #include "i915_selftest.h"
> > > >
> > > > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
> > > > -#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
> > > > +#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
> > > > #else
> > > > -#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
> > > > +#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
> > > > #endif
> > > >
> > > > static DEFINE_SPINLOCK(i915_sw_fence_lock);
> > > > @@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
> > > > 	i915_sw_fence_notify_t fn;
> > > >
> > > > 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
> > > > -	return fn(fence, state);
> > > > +	if (likely(fn))
> > > > +		return fn(fence, state);
> > > > +	else
> > > > +		return 0;
> > > 
> > > since the knowledge for these being NULL (or with the wrong alignment)
> > > are in the init/reinit functions,  wouldn't it be better to just add a
> > > fence_nop() and assign it there instead this likely() here?
> > > 
> > 
> > Maybe? I prefer the way it is.
> > 
> > > > }
> > > >
> > > > #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
> > > > @@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
> > > > 			  const char *name,
> > > > 			  struct lock_class_key *key)
> > > > {
> > > > -	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
> > > > -
> > > > 	__init_waitqueue_head(&fence->wait, name, key);
> > > > +	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
> > > > +		return;
> > > 
> > > like:
> > > 	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
> > > 		fence->flags = (unsigned long)sw_fence_dummy_notify;
> > > 	else
> > > 		fence->flags = (unsigned long)fn;
> > > 
> > > 
> > > f you return here instead of calling i915_sw_fence_reinit(), aren't you
> > > just going to use uninitialized memory later? At least in the selftests,
> > > which allocate it with kmalloc()... I didn't check others.
> > > 
> > 
> > I don't think so, maybe the fence won't work but it won't blow up
> > either.
> > 
> > > 
> > > For the bug fix we could just add the __aligned(4) and leave the rest to a
> > > separate patch.
> > > 
> > 
> > The bug was sw_fence_dummy_notify in gt/intel_context.c was not 4 byte
> > align which triggered a BUG_ON during boot which blank screened a
> > laptop. Jani / Tvrtko suggested that we make the BUG_ON to WARN_ONs so
> > if someone makes this mistake in the future kernel should boot albiet
> > with a WARNING.
> 
> yes, I understood. But afaics with WARN_ON you are allowing it to
> continue and may be using uninitialized memory later, just causing other
> problems down the line, which may be equally difficult to debug.
> 
> what I suggested is that there is the easy fix to apply to the current
> rcX kernel, adding __aligned(4) to sw_fence_dummy_notify() (patch 1).
> And there is the additional protection being added here (patch 2) which
> is subject to the debate.
> 

Got it. Will post as 2 different patches.

> > 
> > The long term fix is just pull out the I915_SW_FENCE_MASK (stealing bits
> > from a poitner) and we don't have to worry any of this.
> 
> Patch 2 may not even be needed if you're going that route. But we are
> not only protecting against unaligned, but also from code calling
> i915_sw_fence_init() with a NULL fn.
> 

Maybe, I'll just do the proper fix in patch #2 right away.

Matt

> Lucas De Marchi
> 
> > 
> > Matt
> > 
> > > 
> > > Lucas De Marchi
> > > 
> > > > 	fence->flags = (unsigned long)fn;
> > > >
> > > > 	i915_sw_fence_reinit(fence);
> > > > @@ -257,8 +260,8 @@ void i915_sw_fence_reinit(struct i915_sw_fence *fence)
> > > > 	atomic_set(&fence->pending, 1);
> > > > 	fence->error = 0;
> > > >
> > > > -	I915_SW_FENCE_BUG_ON(!fence->flags);
> > > > -	I915_SW_FENCE_BUG_ON(!list_empty(&fence->wait.head));
> > > > +	I915_SW_FENCE_WARN_ON(!fence->flags);
> > > > +	I915_SW_FENCE_WARN_ON(!list_empty(&fence->wait.head));
> > > > }
> > > >
> > > > void i915_sw_fence_commit(struct i915_sw_fence *fence)
> > > > --
> > > > 2.32.0
> > > >

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [Intel-gfx] [PATCH] drm/i915: fix blank screen booting crashes
  2021-09-22  1:40       ` Matthew Brost
@ 2021-09-22 21:37         ` Lucas De Marchi
  0 siblings, 0 replies; 9+ messages in thread
From: Lucas De Marchi @ 2021-09-22 21:37 UTC (permalink / raw)
  To: Matthew Brost; +Cc: intel-gfx, dri-devel

On Tue, Sep 21, 2021 at 06:40:41PM -0700, Matthew Brost wrote:
>On Tue, Sep 21, 2021 at 04:29:31PM -0700, Lucas De Marchi wrote:
>> On Tue, Sep 21, 2021 at 03:55:15PM -0700, Matthew Brost wrote:
>> > On Tue, Sep 21, 2021 at 11:46:37AM -0700, Lucas De Marchi wrote:
>> > > On Tue, Sep 21, 2021 at 10:43:32AM -0700, Matthew Brost wrote:
>> > > > From: Hugh Dickins <hughd@google.com>
>> > > >
>> > > > 5.15-rc1 crashes with blank screen when booting up on two ThinkPads
>> > > > using i915.  Bisections converge convincingly, but arrive at different
>> > > > and surprising "culprits", none of them the actual culprit.
>> > > >
>> > > > netconsole (with init_netconsole() hacked to call i915_init() when
>> > > > logging has started, instead of by module_init()) tells the story:
>> > > >
>> > > > kernel BUG at drivers/gpu/drm/i915/i915_sw_fence.c:245!
>> > > > with RSI: ffffffff814d408b pointing to sw_fence_dummy_notify().
>> > > > I've been building with CONFIG_CC_OPTIMIZE_FOR_SIZE=y, and that
>> > > > function needs to be 4-byte aligned.
>> > > >
>> > > > v2:
>> > > > (Jani Nikula)
>> > > >  - Change BUG_ON to WARN_ON
>> > > > v3:
>> > > > (Jani / Tvrtko)
>> > > >  - Short circuit __i915_sw_fence_init on WARN_ON
>> > > >
>> > > > Fixes: 62eaf0ae217d ("drm/i915/guc: Support request cancellation")
>> > > > Signed-off-by: Hugh Dickins <hughd@google.com>
>> > > > Signed-off-by: Matthew Brost <matthew.brost@intel.com>
>> > > > Reviewed-by: Matthew Brost <matthew.brost@intel.com>
>> > > > ---
>> > > > drivers/gpu/drm/i915/gt/intel_context.c |  4 ++--
>> > > > drivers/gpu/drm/i915/i915_sw_fence.c    | 17 ++++++++++-------
>> > > > 2 files changed, 12 insertions(+), 9 deletions(-)
>> > > >
>> > > > diff --git a/drivers/gpu/drm/i915/gt/intel_context.c b/drivers/gpu/drm/i915/gt/intel_context.c
>> > > > index ff637147b1a9..e7f78bc7ebfc 100644
>> > > > --- a/drivers/gpu/drm/i915/gt/intel_context.c
>> > > > +++ b/drivers/gpu/drm/i915/gt/intel_context.c
>> > > > @@ -362,8 +362,8 @@ static int __intel_context_active(struct i915_active *active)
>> > > > 	return 0;
>> > > > }
>> > > >
>> > >
>> > > > -static int sw_fence_dummy_notify(struct i915_sw_fence *sf,
>> > > > -				 enum i915_sw_fence_notify state)
>> > > > +static int __i915_sw_fence_call
>> > > > +sw_fence_dummy_notify(struct i915_sw_fence *sf, enum i915_sw_fence_notify state)
>> > > > {
>> > > > 	return NOTIFY_DONE;
>> > > > }
>> > > > diff --git a/drivers/gpu/drm/i915/i915_sw_fence.c b/drivers/gpu/drm/i915/i915_sw_fence.c
>> > > > index c589a681da77..08cea73264e7 100644
>> > > > --- a/drivers/gpu/drm/i915/i915_sw_fence.c
>> > > > +++ b/drivers/gpu/drm/i915/i915_sw_fence.c
>> > > > @@ -13,9 +13,9 @@
>> > > > #include "i915_selftest.h"
>> > > >
>> > > > #if IS_ENABLED(CONFIG_DRM_I915_DEBUG)
>> > > > -#define I915_SW_FENCE_BUG_ON(expr) BUG_ON(expr)
>> > > > +#define I915_SW_FENCE_WARN_ON(expr) WARN_ON(expr)
>> > > > #else
>> > > > -#define I915_SW_FENCE_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr)
>> > > > +#define I915_SW_FENCE_WARN_ON(expr) BUILD_BUG_ON_INVALID(expr)
>> > > > #endif
>> > > >
>> > > > static DEFINE_SPINLOCK(i915_sw_fence_lock);
>> > > > @@ -129,7 +129,10 @@ static int __i915_sw_fence_notify(struct i915_sw_fence *fence,
>> > > > 	i915_sw_fence_notify_t fn;
>> > > >
>> > > > 	fn = (i915_sw_fence_notify_t)(fence->flags & I915_SW_FENCE_MASK);
>> > > > -	return fn(fence, state);
>> > > > +	if (likely(fn))
>> > > > +		return fn(fence, state);
>> > > > +	else
>> > > > +		return 0;
>> > >
>> > > since the knowledge for these being NULL (or with the wrong alignment)
>> > > are in the init/reinit functions,  wouldn't it be better to just add a
>> > > fence_nop() and assign it there instead this likely() here?
>> > >
>> >
>> > Maybe? I prefer the way it is.
>> >
>> > > > }
>> > > >
>> > > > #ifdef CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS
>> > > > @@ -242,9 +245,9 @@ void __i915_sw_fence_init(struct i915_sw_fence *fence,
>> > > > 			  const char *name,
>> > > > 			  struct lock_class_key *key)
>> > > > {
>> > > > -	BUG_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK);
>> > > > -
>> > > > 	__init_waitqueue_head(&fence->wait, name, key);
>> > > > +	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
>> > > > +		return;
>> > >
>> > > like:
>> > > 	if (WARN_ON(!fn || (unsigned long)fn & ~I915_SW_FENCE_MASK))
>> > > 		fence->flags = (unsigned long)sw_fence_dummy_notify;
>> > > 	else
>> > > 		fence->flags = (unsigned long)fn;
>> > >
>> > >
>> > > f you return here instead of calling i915_sw_fence_reinit(), aren't you
>> > > just going to use uninitialized memory later? At least in the selftests,
>> > > which allocate it with kmalloc()... I didn't check others.
>> > >
>> >
>> > I don't think so, maybe the fence won't work but it won't blow up
>> > either.
>> >
>> > >
>> > > For the bug fix we could just add the __aligned(4) and leave the rest to a
>> > > separate patch.
>> > >
>> >
>> > The bug was sw_fence_dummy_notify in gt/intel_context.c was not 4 byte
>> > align which triggered a BUG_ON during boot which blank screened a
>> > laptop. Jani / Tvrtko suggested that we make the BUG_ON to WARN_ONs so
>> > if someone makes this mistake in the future kernel should boot albiet
>> > with a WARNING.
>>
>> yes, I understood. But afaics with WARN_ON you are allowing it to
>> continue and may be using uninitialized memory later, just causing other
>> problems down the line, which may be equally difficult to debug.
>>
>> what I suggested is that there is the easy fix to apply to the current
>> rcX kernel, adding __aligned(4) to sw_fence_dummy_notify() (patch 1).
>> And there is the additional protection being added here (patch 2) which
>> is subject to the debate.
>>
>
>Got it. Will post as 2 different patches.
>
>> >
>> > The long term fix is just pull out the I915_SW_FENCE_MASK (stealing bits
>> > from a poitner) and we don't have to worry any of this.
>>
>> Patch 2 may not even be needed if you're going that route. But we are
>> not only protecting against unaligned, but also from code calling
>> i915_sw_fence_init() with a NULL fn.
>>
>
>Maybe, I'll just do the proper fix in patch #2 right away.

makes sense. Thanks

Lucas De Marchi

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-09-22 21:37 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-21 17:43 [PATCH] drm/i915: fix blank screen booting crashes Matthew Brost
2021-09-21 17:43 ` [Intel-gfx] " Matthew Brost
2021-09-21 18:46 ` Lucas De Marchi
2021-09-21 22:55   ` Matthew Brost
2021-09-21 23:29     ` Lucas De Marchi
2021-09-22  1:40       ` Matthew Brost
2021-09-22 21:37         ` Lucas De Marchi
2021-09-21 20:24 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: fix blank screen booting crashes (rev3) Patchwork
2021-09-22  0:06 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

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.