PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   顯示卡討論區 (https://www.pcdvd.com.tw/forumdisplay.php?f=8)
-   -   有沒有可以讀取 GPU 暫存器的工具 (https://www.pcdvd.com.tw/showthread.php?t=1138280)

喵刹 2017-11-28 08:53 PM

引用:
作者NEAL
你掛載的驅動程式是哪個?


核心內建的 i915
我看過 Arch Wiki 他說要關閉圖形加速,但我覺得這樣沒意義.
https://wiki.archlinux.org/index.php/intel_graphics

想知道問題出在哪,然後嘗試修復看看.
因為不知道是什麼原因導致,所以也不知道怎麼Google 找答案.

NEAL 2017-11-28 10:07 PM

引用:
作者喵刹
核心內建的 i915
我看過 Arch Wiki 他說要關閉圖形加速,但我覺得這樣沒意義.
https://wiki.archlinux.org/index.php/intel_graphics

想知道問題出在哪,然後嘗試修復看看.
因為不知道是什麼原因導致,所以也不知道怎麼Google 找答案.


那和你使用的Composite Manager也有關係,我自己的經驗是GNOME+Xorg蠻常出這種問題,把Xorg換成Wayland就好很多。

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

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

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

喵刹 2017-11-28 11:21 PM

引用:
作者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 真的是爛貨 :think:

NEAL 2017-11-29 01:54 PM

引用:
作者喵刹
事實上我有參考過網路上的 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 o...



這段代碼是用來解決GPU Hang的問題,不是問題來源。

而且它也有講得很清楚了:This should work on all but the second generation chipsets.

Intel GT1/GT2/GT3都是從Sandy Bridge(Second Generation)顯示核心一路小改款而來,所以二代有的問題,只要驅動沒改善,就會一路留到N代。

所以你還是試著換Intel官方的驅動看看,或著換Composite Manager比較實在。


所有的時間均為GMT +8。 現在的時間是08:47 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。