Re: [問題] Linux >= 3.7 螢幕亂掉與當機

看板Linux作者 ([+++++++======>])時間10年前 (2015/08/06 22:02), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《lantw44 ([+++++++======>])》之銘言: : 目前這個 Linux >= 3.7 和 Intel Ironlake 的問題已經回報到 DRM/Intel,不過還沒找 : 到真正的解法。 : git bisect 出來的結果是這個 commit: : https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=edef7e6 : 有嘗試過這個 patch: : --- a/drivers/char/agp/intel-gtt.c : +++ b/drivers/char/agp/intel-gtt.c : @@ -581,7 +581,7 @@ static inline int needs_ilk_vtd_wa(void) : /* Query intel_iommu to see if we need the workaround. Presumably that : * was loaded first. : */ : - if ((gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB || : + if ((gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG || : gpu_devid == PCI_DEVICE_ID_INTEL_IRONLAKE_M_IG) && : intel_iommu_gfx_mapped) : return 1; 這個 patch 已經進 Linux 4.2-rc2: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=8b572a4 也收到通知會 backport 回以下版本: Linux 3.10-stable Linux 3.14-stable Linux 4.1-stable Ubuntu Kernel 3.13.y-ckt Ubuntu Kernel 3.16.y-ckt Ubuntu Kernel 3.19.y-ckt 不過對我來說沒什麼感覺,即使有這個 patch 我還是得用 intel_iommu=igfx_off,因為 持續使用一兩個小時以後還是會當機。當然,如果開機過後就擺著不去用它,放一兩個小 時是不會當機的。 : 雖然這可以讓系統正常啟動,display server 也能正常執行,但是會在大約使用一小時 : 之後,在 serial console 收到這個訊息,接著當機,只能按 reset 重開。 : Kernel panic - not syncing: DMAR hardware is malfunctioning : https://bugs.freedesktop.org/show_bug.cgi?id=91127#c8 : 目前大概是想辦法找比較了解 IOMMU 的人幫忙看看訊息 ...... 目前沒得到任何回應,只知道 dmesg 會持續出現這類訊息: DMAR: DMAR:[DMA Write] Request device [00:02.0] fault addr fde7c000 DMAR:[fault reason 05] PTE Write access is not set 似乎只要螢幕畫面有變化就會讓這個訊息一直產生,直到最後當機。 : ------------------------------------------------------------------------------ : 還有一個類似的問題,但是是在使用 Linux >= 3.19 當作 Xen dom0 時才會發生,同樣 : 也是會讓螢幕亂掉,然後在 display server 啟動時導致系統當機。這個問題也已經回報 : 到 DRM/Intel 和 Xen-devel。 : git bisect 出來的結果是這個 commit: : https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=47591df : 第一個 workaround 是關閉 VT-d 支援,但這可能會使 PCI passthrough 不能用。方法 : 是在 Xen 的開機參數加上 iommu=off。 : 第二個 workaround 是模仿 Linux 的 intel_iommu=igfx_off,用這個 patch: : --- a/xen/drivers/passthrough/vtd/quirks.c : +++ b/xen/drivers/passthrough/vtd/quirks.c : @@ -74,6 +74,7 @@ int is_igd_vt_enabled_quirk(void) : if ( !IS_ILK(ioh_id) ) : return 1; : + return 0; : /* integrated graphics on Intel platforms is located at 0:2.0 */ : ggc = pci_conf_read16(0, 0, IGD_DEV, 0, GGC); : 只不過還是沒有找到真正的解法,目前的想法是等 Linux >= 3.7 的那個問題解決以後, : 看看能不能模仿解決問題的 commit 修改 Xen。 後來發現 Xen 也會印一些跟上面提到 Linux dmesg 裡很像的訊息: (XEN) [VT-D]DMAR:[DMA Write] Request device [0000:00:02.0] fault addr 73fbff000, iommu reg = ffff82c000203000 (XEN) [VT-D]DMAR: reason 05 - PTE Write access is not set 但我還是不知道該怎麼解決,只好先送了一個比較正常的 workaround, 現在還在 Xen staging: http://xenbits.xen.org/gitweb/?p=xen.git;a=commit;h=1463411 在還沒找到解法之前只能繼續用這個 patch 加進去的 iommu=no-igfx 了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.43.117 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1438869723.A.36A.html
文章代碼(AID): #1LmsZRDg (Linux)
討論串 (同標題文章)
文章代碼(AID): #1LmsZRDg (Linux)