亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
請教如何調(diào)試內(nèi)核線程卡死?
[打印本頁]
作者:
fire_vr
時(shí)間:
2015-02-03 17:10
標(biāo)題:
請教如何調(diào)試內(nèi)核線程卡死?
Hi,
測試的同事在使用LTP進(jìn)行壓力測試Kernel時(shí),Kernel發(fā)生了復(fù)位。
LTP全稱是Linux Test Project,是一系列應(yīng)用層的程序。
我看Log,是Kernel下面的watchdog觸發(fā)的復(fù)位。
我們板子的Kernel watchdog是廠家弄的(高通平臺),大致的原理是通過schedule_delayed_work_on來周期性喂狗,一旦沒來得急喂狗,watchdog模塊便調(diào)用panic()發(fā)生復(fù)位了。
因此我判斷是Kernel進(jìn)程調(diào)度來不及起schedule_delayed_work_on,導(dǎo)致了復(fù)位。
請問如何debug這個(gè)問題呢?我想在watchdog使用panic()重啟之前,加些打印看當(dāng)前Kernel下面是哪個(gè)線程的占用率高。請問能做得到嗎?
謝謝!
作者:
鎮(zhèn)水鐵牛
時(shí)間:
2015-02-03 21:02
schedule_delayed_work_on使用的是內(nèi)核默認(rèn)的,還是你自己新定義的worker?建議使用自己新定義的。
watchdog重啟,要么cpu死鎖了,要么是你的喂狗程序異常了。
作者:
Tinnal
時(shí)間:
2015-02-04 09:04
回復(fù)
1#
fire_vr
狗多久咬狗?
worker就一普通優(yōu)先級的內(nèi)核線程在執(zhí)行。系統(tǒng)繁忙或有FIFO,它就得讓路。
你要關(guān)注是正真出問題,還是你的喂狗模型不合理。
作者:
fire_vr
時(shí)間:
2015-02-04 18:26
如果把watchdog注掉的話,測試是能通過的。
應(yīng)該是worker優(yōu)先級不夠,但schedule_delayed_work_on的優(yōu)先級好像不能調(diào)呀。請問能有其他更實(shí)時(shí)的任務(wù)來跑我的喂狗程序嗎?
回復(fù)
3#
Tinnal
作者:
fire_vr
時(shí)間:
2015-02-04 18:29
回復(fù)
2#
鎮(zhèn)水鐵牛
Hi,我用schedule_delayed_work_on來運(yùn)行我們自己定義的喂狗程序。一旦喂狗不及時(shí),就會(huì)觸發(fā)fiq中斷系統(tǒng)復(fù)位。一直以來運(yùn)行都正常的,就是在做LTP壓力測試時(shí),有時(shí)候喂狗任務(wù)搶不到控制權(quán)。請問有其他的更好方法嗎?
作者:
arm-linux-gcc
時(shí)間:
2015-02-04 18:53
回復(fù)
5#
fire_vr
要不使用實(shí)時(shí)線程來做?
作者:
linuxfellow
時(shí)間:
2015-02-04 21:02
回復(fù)
1#
fire_vr
出現(xiàn)這樣問題一般是系統(tǒng)內(nèi)進(jìn)程優(yōu)先級設(shè)置不合理,已經(jīng)對某些進(jìn)程實(shí)際執(zhí)行時(shí)間估計(jì)不足。如果沒有辦法加ftrace,就可以試試下面的實(shí)用辦法:kill對cpu資源消耗大的進(jìn)程,直到看門狗不復(fù)位。再把進(jìn)程按同樣順序加回來,直到復(fù)位再發(fā)生。這樣就可以定位到哪一個(gè),或幾個(gè)進(jìn)程有問題。如果單進(jìn)程有問題,就是該進(jìn)程strobe看門狗頻率不夠。要在函數(shù)之間,或函數(shù)里增加看門狗刷新。如果是多個(gè)進(jìn)程,還要考慮死鎖。
作者:
fire_vr
時(shí)間:
2015-02-04 21:34
回復(fù)
7#
linuxfellow
Hi, 我想問下如何設(shè)置內(nèi)核的進(jìn)程優(yōu)先級呢?
事實(shí)上我們有兩個(gè)版本的內(nèi)核,一個(gè)是3.0.21,一個(gè)是3.4.16,3.0.21版本沒問題,3.4.16的內(nèi)核才出問題。當(dāng)然,兩個(gè)版本的BSP有些不一樣。做測試的LTP執(zhí)行文件都是一個(gè)。
作者:
鎮(zhèn)水鐵牛
時(shí)間:
2015-02-04 22:23
回復(fù)
5#
fire_vr
簡單易行的辦法:用timer去喂狗。
作者:
Tinnal
時(shí)間:
2015-02-05 08:09
回復(fù)
4#
fire_vr
無論高有限級線程喂狗也好,Timer喂狗也好,最重要的是你要回答:你要看的門看好沒有?
看門夠要是一條好狗,主人沒事不能亂吠,同時(shí),主人有事不能不吠?撮T狗應(yīng)該選擇合理的實(shí)現(xiàn)方法,而不是一直去報(bào)證能喂狗成功。
作者:
humjb_1983
時(shí)間:
2015-02-05 08:23
有kdump的話,就有vmcore,分析看看吧。。
作者:
linuxfellow
時(shí)間:
2015-02-05 09:28
本帖最后由 linuxfellow 于 2015-02-05 10:21 編輯
那就是你的ltp程序有問題, 你把ltp的nice值增加試試。這樣你的ltp優(yōu)先級低了,會(huì)有幫助。
可能在不同內(nèi)核有些測試函數(shù)運(yùn)行時(shí)間不一樣。你可以在不同函數(shù)之間喂狗。如果有測試函數(shù)運(yùn)行時(shí)間超過狗的timeout時(shí)間,在函數(shù)里還要增加喂狗動(dòng)作。
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2