Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.kernel > #59590 > unrolled thread

Bug#884061: linux-image-4.9.0-4-amd64: screen scrolls wildly

Started byVagrant Cascadian <vagrant@debian.org>
First post2017-12-11 04:00 +0100
Last post2018-02-12 23:50 +0100
Articles 8 — 5 participants

Back to article view | Back to linux.debian.kernel


Contents

  Bug#884061: linux-image-4.9.0-4-amd64: screen scrolls wildly Vagrant Cascadian <vagrant@debian.org> - 2017-12-11 04:00 +0100
    Bug#884061: linux-image-4.9.0-4-amd64: screen scrolls wildly Vagrant Cascadian <vagrant@debian.org> - 2017-12-11 23:50 +0100
    Bug#884061: (no subject) Nick Smallbone <nick@smallbone.se> - 2017-12-12 21:10 +0100
      Bug#884061: #884061: linux-image-4.9.0-4-amd64: screen scrolls wildly Vagrant Cascadian <vagrant@debian.org> - 2017-12-29 02:10 +0100
    Processed: Re: #884061: linux-image-4.9.0-4-amd64: screen scrolls  wildly "Debian Bug Tracking System" <owner@bugs.debian.org> - 2017-12-29 02:10 +0100
    Bug#884061: 4.9.65-3+deb9u1 breaks things on AMD/Intel hybrid systems Tarik Graba <tarik.graba@telecom-paristech.fr> - 2018-01-03 15:20 +0100
    Bug#884061: This bug severely affects anybody using intel graphics cards from 2015 Marga Manterola <marga@google.com> - 2018-01-22 19:10 +0100
      Bug#884061: This bug severely affects anybody using intel graphics cards from 2015 Vagrant Cascadian <vagrant@debian.org> - 2018-02-12 23:50 +0100

#59590 — Bug#884061: linux-image-4.9.0-4-amd64: screen scrolls wildly

FromVagrant Cascadian <vagrant@debian.org>
Date2017-12-11 04:00 +0100
SubjectBug#884061: linux-image-4.9.0-4-amd64: screen scrolls wildly
Message-ID<uVmtX-7Ha-1@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

Package: src:linux
Version: 4.9.65-3
Severity: normal

Since upgrading to 4.9.65-3, my screen occasionally starts rapidly
scrolling sideways, flashing on and off repeatedly... looks almost like
the refresh rate or sync was off, and it's displaying the leftmost part
of the screen on the rightmost or the top of the display in the middle
of the screen and other similar behaviors...

When this starts to happen, usually there is a log in the dmesg output
like this:

  [drm:gen8_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun

Closing the lid and openening it again seems to fix it for a while, or
makes it less severe (e.g. brief moments where the screen slides around
or flickers).

I'm going to try to find the last kernel version before I upgraded and
see if I the issue is also triggered on that...

live well,
  vagrant


-- Package-specific info:

[toc] | [next] | [standalone]


#59622

FromVagrant Cascadian <vagrant@debian.org>
Date2017-12-11 23:50 +0100
Message-ID<uVF3A-317-5@gated-at.bofh.it>
In reply to#59590

[Multipart message — attachments visible in raw view] — view raw

On 2017-12-10, Vagrant Cascadian wrote:
> Since upgrading to 4.9.65-3, my screen occasionally starts rapidly
> scrolling sideways, flashing on and off repeatedly...
...
> When this starts to happen, usually there is a log in the dmesg output
> like this:
>
>   [drm:gen8_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun
...
> I'm going to try to find the last kernel version before I upgraded and
> see if I the issue is also triggered on that...

Have been running 4.9.51-1 without issue today, so it seems like it
really was introduced in 4.9.65-3. Also tried a 4.13.x kernel from
stretch-backports, which seemed to have the same issue (though *maybe*
less severe)...

So I'm guessing some fix/feature was backported to 4.9 that triggers
this problem.

live well,
  vagrant

[toc] | [prev] | [next] | [standalone]


#59636 — Bug#884061: (no subject)

FromNick Smallbone <nick@smallbone.se>
Date2017-12-12 21:10 +0100
SubjectBug#884061: (no subject)
Message-ID<uVZ2h-7Ny-3@gated-at.bofh.it>
In reply to#59590
I get this too after upgrading from 4.9.30-2+deb9u5 to 4.9.65-3.
Same dmesg error as Vagrant, together with either crazy flickering
or a hard crash. It happens usually about 30 seconds after starting X.

I tried using "git bisect" on the upstream linux-stable repository.
It points the finger at the following commit:

  7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8 is the first bad commit
  commit 7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8
  Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
  Date:   Thu Oct 19 17:13:40 2017 +0200
  
      drm/i915: Do not rely on wm preservation for ILK watermarks
      
      commit 8777b927b92cf5b6c29f9f9d3c737addea9ac8a7 upstream.
      
      The original intent was to preserve watermarks as much as possible
      in intel_pipe_wm.raw_wm, and put the validated ones in intel_pipe_wm.wm.
      
      It seems this approach is insufficient and we don't always preserve
      the raw watermarks, so just use the atomic iterator we're already using
      to get a const pointer to all bound planes on the crtc.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102373
      Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20171019151341.4579-1-maarten.lankhorst@linux.intel.com
      (cherry picked from commit 28283f4f359cd7cfa9e65457bb98c507a2cd0cd0)
      Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  
  :040000 040000 072d8db147e7c6feb397661767c67acc543fc7e1 c73d489829736f47f7186bbde766887e5a88b130 M	drivers

Indeed, using this commit provokes the error, while the parent commit
(b35783871190a8fcf31c2216638b92bcb2bf152e) does not (at least for me).

Nick

[toc] | [prev] | [next] | [standalone]


#59797 — Bug#884061: #884061: linux-image-4.9.0-4-amd64: screen scrolls wildly

FromVagrant Cascadian <vagrant@debian.org>
Date2017-12-29 02:10 +0100
SubjectBug#884061: #884061: linux-image-4.9.0-4-amd64: screen scrolls wildly
Message-ID<v1Rln-66-3@gated-at.bofh.it>
In reply to#59636

[Multipart message — attachments visible in raw view] — view raw

Control: tags 884061 +patch

On 2017-12-12, Nick Smallbone wrote:
> I get this too after upgrading from 4.9.30-2+deb9u5 to 4.9.65-3.
> Same dmesg error as Vagrant, together with either crazy flickering
> or a hard crash. It happens usually about 30 seconds after starting X.
>
> I tried using "git bisect" on the upstream linux-stable repository.
> It points the finger at the following commit:
>
>   7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8 is the first bad commit
>   commit 7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8
>   Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>   Date:   Thu Oct 19 17:13:40 2017 +0200
>   
>       drm/i915: Do not rely on wm preservation for ILK watermarks
>       
>       commit 8777b927b92cf5b6c29f9f9d3c737addea9ac8a7 upstream.

Thanks for bisecting the issue!

I just tested simply reverting this patch with 4.9.65-3+deb9u1, and it's
been running without problem for at least three hours. So that confirms
that it works around the issue, at least.

I'm not sure if there's a better fix than simply reverting this; this is
clearly a regression for at least two users that makes the system almost
unusable.


From 4c01095ae53794023e772f9afb753bef67c3d84c Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <vagrant@debian.org>
Date: Thu, 28 Dec 2017 11:21:30 -0800
Subject: [PATCH] Revert "drm/i915: Do not rely on wm preservation for ILK
 watermarks"

This reverts commit 7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8.
---
 drivers/gpu/drm/i915/intel_drv.h |  1 +
 drivers/gpu/drm/i915/intel_pm.c  | 52 +++++++++++++++++++++++-----------------
 2 files changed, 31 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 3ce9ba30d827..a19ec06f9e42 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -457,6 +457,7 @@ struct intel_crtc_scaler_state {
 
 struct intel_pipe_wm {
 	struct intel_wm_level wm[5];
+	struct intel_wm_level raw_wm[5];
 	uint32_t linetime;
 	bool fbc_wm_enabled;
 	bool pipe_enabled;
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 277a8026460b..49de4760cc16 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -27,7 +27,6 @@
 
 #include <linux/cpufreq.h>
 #include <drm/drm_plane_helper.h>
-#include <drm/drm_atomic_helper.h>
 #include "i915_drv.h"
 #include "intel_drv.h"
 #include "../../../platform/x86/intel_ips.h"
@@ -2018,9 +2017,9 @@ static void ilk_compute_wm_level(const struct drm_i915_private *dev_priv,
 				 const struct intel_crtc *intel_crtc,
 				 int level,
 				 struct intel_crtc_state *cstate,
-				 const struct intel_plane_state *pristate,
-				 const struct intel_plane_state *sprstate,
-				 const struct intel_plane_state *curstate,
+				 struct intel_plane_state *pristate,
+				 struct intel_plane_state *sprstate,
+				 struct intel_plane_state *curstate,
 				 struct intel_wm_level *result)
 {
 	uint16_t pri_latency = dev_priv->wm.pri_latency[level];
@@ -2342,24 +2341,28 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *cstate)
 	struct intel_pipe_wm *pipe_wm;
 	struct drm_device *dev = state->dev;
 	const struct drm_i915_private *dev_priv = to_i915(dev);
-	struct drm_plane *plane;
-	const struct drm_plane_state *plane_state;
-	const struct intel_plane_state *pristate = NULL;
-	const struct intel_plane_state *sprstate = NULL;
-	const struct intel_plane_state *curstate = NULL;
+	struct intel_plane *intel_plane;
+	struct intel_plane_state *pristate = NULL;
+	struct intel_plane_state *sprstate = NULL;
+	struct intel_plane_state *curstate = NULL;
 	int level, max_level = ilk_wm_max_level(dev), usable_level;
 	struct ilk_wm_maximums max;
 
 	pipe_wm = &cstate->wm.ilk.optimal;
 
-	drm_atomic_crtc_state_for_each_plane_state(plane, plane_state, &cstate->base) {
-		const struct intel_plane_state *ps = to_intel_plane_state(plane_state);
+	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
+		struct intel_plane_state *ps;
 
-		if (plane->type == DRM_PLANE_TYPE_PRIMARY)
+		ps = intel_atomic_get_existing_plane_state(state,
+							   intel_plane);
+		if (!ps)
+			continue;
+
+		if (intel_plane->base.type == DRM_PLANE_TYPE_PRIMARY)
 			pristate = ps;
-		else if (plane->type == DRM_PLANE_TYPE_OVERLAY)
+		else if (intel_plane->base.type == DRM_PLANE_TYPE_OVERLAY)
 			sprstate = ps;
-		else if (plane->type == DRM_PLANE_TYPE_CURSOR)
+		else if (intel_plane->base.type == DRM_PLANE_TYPE_CURSOR)
 			curstate = ps;
 	}
 
@@ -2381,9 +2384,11 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *cstate)
 	if (pipe_wm->sprites_scaled)
 		usable_level = 0;
 
-	memset(&pipe_wm->wm, 0, sizeof(pipe_wm->wm));
 	ilk_compute_wm_level(dev_priv, intel_crtc, 0, cstate,
-			     pristate, sprstate, curstate, &pipe_wm->wm[0]);
+			     pristate, sprstate, curstate, &pipe_wm->raw_wm[0]);
+
+	memset(&pipe_wm->wm, 0, sizeof(pipe_wm->wm));
+	pipe_wm->wm[0] = pipe_wm->raw_wm[0];
 
 	if (IS_HASWELL(dev) || IS_BROADWELL(dev))
 		pipe_wm->linetime = hsw_compute_linetime_wm(cstate);
@@ -2393,8 +2398,8 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *cstate)
 
 	ilk_compute_wm_reg_maximums(dev, 1, &max);
 
-	for (level = 1; level <= usable_level; level++) {
-		struct intel_wm_level *wm = &pipe_wm->wm[level];
+	for (level = 1; level <= max_level; level++) {
+		struct intel_wm_level *wm = &pipe_wm->raw_wm[level];
 
 		ilk_compute_wm_level(dev_priv, intel_crtc, level, cstate,
 				     pristate, sprstate, curstate, wm);
@@ -2404,10 +2409,13 @@ static int ilk_compute_pipe_wm(struct intel_crtc_state *cstate)
 		 * register maximums since such watermarks are
 		 * always invalid.
 		 */
-		if (!ilk_validate_wm_level(level, &max, wm)) {
-			memset(wm, 0, sizeof(*wm));
-			break;
-		}
+		if (level > usable_level)
+			continue;
+
+		if (ilk_validate_wm_level(level, &max, wm))
+			pipe_wm->wm[level] = *wm;
+		else
+			usable_level = level;
 	}
 
 	return 0;
-- 
2.11.0



live well,
  vagrant

[toc] | [prev] | [next] | [standalone]


#59796 — Processed: Re: #884061: linux-image-4.9.0-4-amd64: screen scrolls wildly

From"Debian Bug Tracking System" <owner@bugs.debian.org>
Date2017-12-29 02:10 +0100
SubjectProcessed: Re: #884061: linux-image-4.9.0-4-amd64: screen scrolls wildly
Message-ID<v1Rln-66-5@gated-at.bofh.it>
In reply to#59590
Processing control commands:

> tags 884061 +patch
Bug #884061 [src:linux] linux-image-4.9.0-4-amd64: screen scrolls wildly
Added tag(s) patch.

-- 
884061: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=884061
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems

[toc] | [prev] | [next] | [standalone]


#59812 — Bug#884061: 4.9.65-3+deb9u1 breaks things on AMD/Intel hybrid systems

FromTarik Graba <tarik.graba@telecom-paristech.fr>
Date2018-01-03 15:20 +0100
SubjectBug#884061: 4.9.65-3+deb9u1 breaks things on AMD/Intel hybrid systems
Message-ID<v3S3D-8jb-1@gated-at.bofh.it>
In reply to#59590
Hi,

The last kernel security update (4.9.65-3+deb9u1) makes it impossible to
log in a gnome session from gdm3.

gdm3 starts correctly but when I try to start a gnome session, every
thing hangs and I have to hard reboot the machine (which makes it hard
to debug).

The system is an HP Zbook 15u G2 with hybrid AMD/Intel graphics.

---
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 5500
(rev 09)
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Opal XT [Radeon R7 M265]
---

Also, with kernel 4.9.65-3, I have some strange flickering on an
external display (display port).

I had to move to a backport kernel (4.13.0-0.bpo.1-amd64 #1 SMP Debian
4.13.13-1~bpo9+1) to get a usable machine.


Tarik

[toc] | [prev] | [next] | [standalone]


#60046 — Bug#884061: This bug severely affects anybody using intel graphics cards from 2015

FromMarga Manterola <marga@google.com>
Date2018-01-22 19:10 +0100
SubjectBug#884061: This bug severely affects anybody using intel graphics cards from 2015
Message-ID<vaOHE-8de-9@gated-at.bofh.it>
In reply to#59590

[Multipart message — attachments visible in raw view] — view raw

This bug can make machines that include the affected graphics card
completely unusable.

The bad commit has been identified here by Vagrant, and independently by
several other people.  It was already reverted in the 4.9.66 upstream
release:

commit aa8f1adcf964a8f2ebd0c709a308d26dd4b9863b
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Nov 28 10:15:23 2017 +0100

    Revert "drm/i915: Do not rely on wm preservation for ILK watermarks"

    This reverts commit 7de694782cbe7840f2c0de6f1e70f41fc1b8b6e8 which is
    commit 8777b927b92cf5b6c29f9f9d3c737addea9ac8a7 upstream.

    It was reported to cause flickering and other regressions.

Any chance we can get a new kernel without that commit?

Thanks!
-- 
Cheers,
Marga

[toc] | [prev] | [next] | [standalone]


#60196 — Bug#884061: This bug severely affects anybody using intel graphics cards from 2015

FromVagrant Cascadian <vagrant@debian.org>
Date2018-02-12 23:50 +0100
SubjectBug#884061: This bug severely affects anybody using intel graphics cards from 2015
Message-ID<viv57-6Dl-3@gated-at.bofh.it>
In reply to#60046

[Multipart message — attachments visible in raw view] — view raw

Control: fixed 884061 4.9.80-1

On 2018-01-22, Marga Manterola wrote:
> This bug can make machines that include the affected graphics card
> completely unusable.
...
> Any chance we can get a new kernel without that commit?

I can confirm 4.9.80-1 from stretch-proposed-updates fixes the issue for
me. I've been running it for several days without issue.

It appears 4.9.80-2 is out now as well.

Not sure how long till the next point release, but at least one can use
stretch-proposed-updates for now.

Thanks to everyone who helped resolve the issue!


live well,
  vagrant

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.kernel


csiph-web