最近改了2.6的skbuff.c,由於我code寫錯了,造成skb會永遠要不到,且會產生memory leakage
而bug的結果就是,沒法login(就是輸入對的密碼後,linux會一直跟你說密碼錯誤,看起來就像密碼被改掉一樣),即使是使用console
這個結果跟bug不太好關聯,你很難從沒法login察覺到是由"要不到skb"會是"memory leakage"造成的
一開始我還覺得奇怪,為什麼其他的kernel都可以login,就是我改過的這個kernel沒法login………
我把這個bug紀綠下來,以茲紀念
.
2008年12月24日 星期三
2008年7月15日 星期二
kernel panic時自動reboot
我是linux使用上很新的新手,雖然我正在寫linux的driver,不過寫程式本來就和os的使用熟練與否不需要正相關
還好我有一個對linux很熟的學弟,可以隨叫隨問
最近在寫網卡的driver,因為driver是在kernel space,所以只要任何一個地方寫錯就會造成kernel panic,於是開發平臺就要開開關關………
而每一次開機就要好久,除了因為linux本身開機就久之外,還因為我不是正常關機………
學弟教了我一個方法讓linux在kernel panic時自動重開
可以去設定/proc/sys/kernel/panic的值,預設是0,也就是不自動重開,若將其值設成3,如
echo 3 /proc/sys/kernel/panic
則機器會在kernel panic 3 秒後自動重開
但是學弟說此方法每次重開機都要重寫一次,於是又教了我一個永久設定該值的方法
去修改/etc/sysctl.conf,在最下面新增一行kernel.panic = 3
於是每次重開機後/proc/sys/kernel/panic的值都是3
從此以後,kernel panic後重開機的速度快了不少
另外,由於linux tty放久了會自動logout,即使用console login也是一樣,此時沒法判斷是kernel panic後自動重開,還是放久了自動logout,學弟又教了一招
uptime
會顯示開機後運行多久時間,格式是 時:分,也就是說,若顯示01:09,表示開機後到現在已經經過了1小時又9分鍾,這樣就可以判斷中間是否有發生過kernel panic了
還好我有一個對linux很熟的學弟,可以隨叫隨問
最近在寫網卡的driver,因為driver是在kernel space,所以只要任何一個地方寫錯就會造成kernel panic,於是開發平臺就要開開關關………
而每一次開機就要好久,除了因為linux本身開機就久之外,還因為我不是正常關機………
學弟教了我一個方法讓linux在kernel panic時自動重開
可以去設定/proc/sys/kernel/panic的值,預設是0,也就是不自動重開,若將其值設成3,如
echo 3 /proc/sys/kernel/panic
則機器會在kernel panic 3 秒後自動重開
但是學弟說此方法每次重開機都要重寫一次,於是又教了我一個永久設定該值的方法
去修改/etc/sysctl.conf,在最下面新增一行kernel.panic = 3
於是每次重開機後/proc/sys/kernel/panic的值都是3
從此以後,kernel panic後重開機的速度快了不少
另外,由於linux tty放久了會自動logout,即使用console login也是一樣,此時沒法判斷是kernel panic後自動重開,還是放久了自動logout,學弟又教了一招
uptime
會顯示開機後運行多久時間,格式是 時:分,也就是說,若顯示01:09,表示開機後到現在已經經過了1小時又9分鍾,這樣就可以判斷中間是否有發生過kernel panic了
訂閱:
文章 (Atom)