瀏覽單個文章
喵刹
*停權中*
 
喵刹的大頭照
 

加入日期: Oct 2017
文章: 7
引用:
作者NEAL
那和你使用的Composite Manager也有關係,我自己的經驗是GNOME+Xorg蠻常出這種問題,把Xorg換成Wayland就好很多。

你可以考慮改用Intel釋出的Driver看看:

https://01.org/linuxgraphics/downloads/stack

我自己是用Ubuntu,之前也有用過一陣子Arch,但覺得它要安裝新套件時,最好要連帶整個系統的套件都upgrade過,不然會掛掉,這點讓我很煩,所以還是回到Debian族系使用。


事實上我有參考過網路上的 Haswell GPU Hang Patch 分析過他的原始碼 新版的說已經修復,但裝起來還是一樣。
GPU Hang 補釘是補在 Linux 核心的原始碼 DRM 部份
我也有參考 Intel 手冊 追蹤起來 會不會是跟 GPU 的 GraphicsEngine 有關

從 CPU Hang 的系統訊息追蹤 問題好像來自這一段

代碼:
static enum intel_engine_hangcheck_action
engine_stuck(struct intel_engine_cs *engine, u64 acthd)
{
	struct drm_i915_private *dev_priv = engine->i915;
	enum intel_engine_hangcheck_action ha;
	u32 tmp;

	ha = head_stuck(engine, acthd);
	if (ha != HANGCHECK_HUNG)
		return ha;

	if (IS_GEN2(dev_priv))
		return HANGCHECK_HUNG;

	/* Is the chip hanging on a WAIT_FOR_EVENT?
	 * If so we can simply poke the RB_WAIT bit
	 * and break the hang. This should work on
	 * all but the second generation chipsets.
	 */
	tmp = I915_READ_CTL(engine);
	if (tmp & RING_WAIT) {
		i915_handle_error(dev_priv, 0,
				  "Kicking stuck wait on %s",
				  engine->name);
		I915_WRITE_CTL(engine, tmp);
		return HANGCHECK_KICK;
	}

	if (INTEL_GEN(dev_priv) >= 6 && tmp & RING_WAIT_SEMAPHORE) {
		switch (semaphore_passed(engine)) {
		default:
			return HANGCHECK_HUNG;
		case 1:
			i915_handle_error(dev_priv, 0,
					  "Kicking stuck semaphore on %s",
					  engine->name);
			I915_WRITE_CTL(engine, tmp);
			return HANGCHECK_KICK;
		case 0:
			return HANGCHECK_WAIT;
		}
	}

	return HANGCHECK_HUNG;
}


RING_WAIT RING 到底在等什麼 實在是搞不清楚
Google 也沒有一個詳細的說明。

跟我同系列的 有人用GT3 就沒問題 GT1 就有問題
我的是筆電想換也只能整台換
頓時覺的 Intel Pentium 跟 Celeron 真的是爛貨
舊 2017-11-28, 11:21 PM #13
回應時引用此文章
喵刹離線中