Packages

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category Stable
  • Assigned To
    Emulatorman
    heckyel
  • Operating System Hyperbola GNU/Linux-libre
  • Severity Medium
  • Priority Medium
  • Reported Version Any
  • Due in Version Starfix
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Packages
Opened by fablamar78 - 15/05/2018
Last edited by heckyel - 03/05/2022

FS#741 - [linux-libre-lts] [i915] Display freeze : hpd interrupt storm detected on connector hdmi-a-1

Hello,

I recently acquired a T400 Thinkpad with 1440×900 panel.
On this T400, I installed Hyperbola, just like on my x200 Thinkpad with 1280×800 panel.

Both Thinkpad are running the same Hyperbola installation :

Full disk encryption (with Libreboot) so both Thinkpad are using early KMS (MODULES=”i915” in /etc/mkinitcpio.conf)
Same kernel : linux-libre-lts (4.9.99 at the moment I’m writing this message)
video driver : modesetting
DE : xfce4 with xfwm4

On the Thinkpad x200, everything works great, no issue to report.

On the T400 though, the linux-libre-lts kernel, I’m getting random display freezes, when it happens, this message appears in dmesg :

hpd interrupt storm detected on connector hdmi-a-1

And the display (and sound) freezes for 10 seconds (sometimes more !)

As Hyperbola proposes linux-libre-lts kernel only, I installed latest linux-libre-lts (4.14.40) and linux-libre (4.16.8) from Parabola GNU/Linux repo.

Results :

With 4.14.40 : Same issue as with 4.9.99 kernel from Hyperbola repo.
With 4.16.8 : Issue is not present ! No more freeze !

I’m not sure how to proceed though. Would you be kind enough helping me to find which commit in i915 driver improved the situation ? If we find it, maybe it could be added as a patch to 4.9.x kernel series.
Or maybe it is something else.. I don’t have much experience, I can provide logs if needed.

Thanks for your help

Closed by  heckyel
03.05.2022 14:35
Reason for closing:  Fixed
Additional comments about closing:  

Closing. In Hyperbola Milky Way 0.4 was fixed

[drm] HPD interrupt storm detected on connector HDMI-A-1 : switching from hotplug detection to polling

Strange as there is no HDMI port on this Thinkpad, only VGA.

Furthermore, the issue is present with factory bios from Lenovo, so it doesn't seem related to a bug with libreboot / coreboot.

Admin
With 4.14.40 : Same issue as with 4.9.99 kernel from Hyperbola repo.
With 4.16.8 : Issue is not present ! No more freeze !

Did you report it to Linux devs? Perhaps they could backport some changes from 4.16 series to solve this issue.

Hi André,

Not yet reported. In fact, you're right I should fill a bug report. I'm sorry to have opened a bug report here.
After more testing, 4.16.x doesn't solve the issue. I had freezes (audio and video) (although smaller, around 500ms) again, after several hours on. This is hard to reproduce.. It happens randomly. Anyway, I will open a bug report at https://bugs.freedesktop.org soon.

Admin
Not yet reported. In fact, you're right I should fill a bug report. I'm sorry to have opened a bug report here.

Please, don't worry, you aren't bothering us to report here, HyperTask was made for that, however i've suggested you to report there since you could get better results than here :)

After more testing, 4.16.x doesn't solve the issue. I had freezes (audio and video)

Seems it could be a Xorg misconfiguration. Did you set your video card through Xorg manually?

Try set up your video card and let me know if it solves your issue, eg.

# /etc/X11/xorg.conf.d/00-device.conf
Section "Device"
        Identifier      "Intel(R) 965GME/GLE"
        Driver          "intel"
        VendorName      "Intel(R)"
        Option          "AccelMethod"           "sna" # glamor
        Option          "PageFlip"              "yes"
        Option          "ZaphodHeads"           "LVDS1,VGA1"
        # modesetting
#       Option          "kmsdev"                "/dev/dri/card0"
#       Option          "ShadowFB"              "no"
#       Option          "SWcursor"              "no"
        # intel
        Option          "Accel"                 "yes"
        Option          "Backlight"             "intel_backlight"
        Option          "DebugFlushBatches"     "no"
        Option          "DebugFlushCaches"      "no"
        Option          "DebugWait"             "no"
        Option          "DRI"                   "3"
        Option          "FallbackDebug"         "no"
        Option          "HWRotation"            "yes"
        Option          "HotPlug"               "yes"
        Option          "LinearFramebuffer"     "yes"
        Option          "Present"               "yes"
        Option          "ReprobeOutputs"        "no"
        Option          "SwapbuffersWait"       "yes"
        Option          "TearFree"              "no"
        Option          "Tiling"                "yes"
        Option          "TripleBuffer"          "yes"
        Option          "Virtualheads"          "0"
        Option          "VSync"                 "yes"
        Option          "XvMC"                  "no"
        Option          "XvPreferOverlay"       "no"
EndSection

You should specify the randr output(s) to use with zaphod mode for a particular driver instance. In this example, it will assign xrandr outputs LVDS1 and VGA1 to this instance of the driver, eg:

Option "ZaphodHeads" "LVDS1,VGA1"

However, if you are using a HDMI, try it:

Option "ZaphodHeads" "HDMI1"

or, try:

Option "ZaphodHeads" "0,2:HDMI1,DP2"

It will assign xrandr outputs HDMI1 and DP2 and CRTCs 0 and 2 to this instance of the driver.

Hi,

Indeed, I didn't have xorg config file since I'm modesetting (I did not install xf86-video-intel as recommended on Arch wiki and Debian wiki)
With the x200, I installed xorg with modesetting, no xorg config at all, it works, simply as that.

pacman -S xorg-{apps,server,server-utils,twm,utils,xdm,xinit,xmessage} xf86-{input-keyboard,input-mouse}

So I tried your suggestion, replacing :

Driver "intel"

with

Driver "modesetting"

Also, used :

Option "ZaphodHeads" "LVDS1,VGA1"

With no improvement unfortunately ! :(

I then installed xf86-video-intel and set up a xorg config file with driver "intel" "Option "ZaphodHeads" "LVDS1,VGA1" and no more luck :D

I also tried to disable the HDMI-1 interface (There is no HDMI interface on this Thinkpad..) from the kernel with :

video=HDMI-1:d

No improvement as well.

"[drm] HPD interrupt storm detected on connector HDMI-A-1 : switching from hotplug detection to polling" is still randomly freezing the display.

The only positive thing is I have a faster startup now using "i915.fastboot=1".. But it doesn't solve the freezing issue. It would be great to know if other libreboot T400 owner have the same issue. Maybe a hardware issue ?? I still don't understand why it detects an interrupt storm on HDMI connector, I don't have such connector.

I'm a bit busy at the moment but I will continue to investigate, thanks for your help André.

Some news :

I'm currently testing to see if I can trigger the bug with Parabola.

X.Org X Server 1.20.0
X Protocol Version 11, Revision 0
Build Operating System: Linux Arch Linux
Current Operating System: Linux parabola 4.16.9-gnu-1 #1 SMP PREEMPT Sun May 20 01:22:41 UTC 2018 x86_64

It's been more than 24 hours and :

[drm] HPD interrupt storm detected on connector HDMI-A-1 : switching from hotplug detection to polling

didn't appear a single time :) Thanks to latest Xorg version I guess..

I don't see anything relevant to the specific issue I had in Xorg release note though..

https://lists.x.org/archives/xorg-announce/2018-May/002893.html

More tests :

/etc/mkinitcpio.conf

MODULES="intel_agp i915"

/etc/modprobe.d/i915.conf

options i915 fastboot=1

/etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
        Identifier  "Intel Graphics"
        Driver      "intel"
        #Option      "DRI" "3"             # DRI3 is now default 
        #Option      "AccelMethod"  "sna" # default
        #Option      "AccelMethod"  "uxa" # fallback
EndSection

Both test made on fresh Hyperbola fully encrypted install with early KMS (see above) for conf detail.

With xorg-server 1.19.3-3 and linux-libre-lts-4.9.102 (both from Hyperbola) : Freeze on early KMS, only way to get a console is to add "nomodeset", strangely, sometimes it boots with early KMS if powered off for a long time ...! :s But then, when it finally boots, after 5 minutes on X, deadly message appears : [drm] HPD interrupt storm detected on connector HDMI-A-1 : switching from hotplug detection to polling

dmesg :

[    0.334338] vgaarb: setting as boot device: PCI:0000:00:02.0
[    0.334338] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.334338] vgaarb: loaded
[    0.334338] vgaarb: bridge control possible 0000:00:02.0

With xorg-server 1.19.3-3 (from Hyperbola) and linux-libre-4.16.11 (from Parabola) : Boots with early KMS without issue, no deadly message.

dmesg :

[    0.180029] pci 0000:00:02.0: vgaarb: setting as boot VGA device
[    0.180029] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none
[    0.180030] pci 0000:00:02.0: vgaarb: bridge control possible
[    0.180031] vgaarb: loaded
[    0.779661] i915 0000:00:02.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=io+mem:owns=io+mem

So it might be a kernel issue after all, I don't get it though, this is quite old hardware, why 4.9 wouldn't work ?

This T400 is driving me nuts, the same setup works fine with a x200 and 4.9 kernel.

As with 4.16.x kernel, using drm-tip kernel (as asked on bugs.freedesktop.org) confirms the "bug" is not present. So a patch will have to be made for 4.9.x LTS kernel. I don't know how long it will take though. For now, I can use the T400 with Hyperbola if either I :

- Compile a kernel myself from 4.16.x

- or use 4.16.x Parabola one for example

I hope folks @freedesktop find the root cause for the issue and that a patch will be made for 4.9.x LTS

bugs.freedesktop.org :

Me
> > The issue is that the distro I use only package 4.9.x kernel. (LTS)
> > I don't understand much how drm fixes are handled for LTS kernels. Will
> > 4.9.x LTS kernel receive a patch for i915 drm ?
> > Sorry if it sounds dumb, I don't have much experience with that. I can
> > certainly compile a kernel from 4.16 branch until then though.
> > Thanks for your help.

Answer :
> This is the upstream bugzilla, the issue is fixed upstream, case closed.
>
> For backports, we'd need to know *which* commit fixed the issue. Here we
> have no clue. If you come up with a reverse bisect indicating which commit
> fixed the issue upstream, and if the fix is small enough, we can request the
> stable kernel maintainers to backport the fix.
>
> Otherwise, you can file a bug against your distro.

André, do you know how could I find which commit fixed the issue ? Let me know if you have an idea. I'm afraid I don't have enough knowledge to do that myself.. :(

Admin
André, do you know how could I find which commit fixed the issue ? Let me know if you have an idea. I'm afraid I don't have enough knowledge to do that myself.. :(

I suggest you open a request to stable kernel maintainers backport the fix from 4.16 to 4.9, since it's working in 4.16.

Hi André,

Well, so far, there is no fix. drm-tip kernel works fine, 4.9.x is buggy with i915 drm and this panel.

"If you come up with a reverse bisect indicating which commit
> fixed the issue upstream, and if the fix is small enough, we can request the
> stable kernel maintainers to backport the fix."

Right now, I don't feel motivated to do that.. xD

Date User Effort (H:M)
watch my effort tracking timers

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing