Friday, July 21, 2006

kernel 測試流程

經過兩天的奮鬥,終於把大部分的問題的解決了,看起來 traffic 似乎也可以正常跑了,不過以後還是訂出一個建議的測試流程,否則盲目的抓這些 bug 竟然也花掉兩三個禮拜才發現問題其實很單純…

建議的測試流程,完成一次 porting之後應該做這些測試:


  • sleep, usleep function 配合 gettimeofday
  • poll, select function 配合 settimeofday
  • alarm, setitimer, getitimer 配合 gettimeofday
  • poll, select 配合 gettimeofday

事實上,itimer 對於每個 task 都有三種 timer ,不過我們目前只 hack 了 real timer 而已,這部分應該補齊,另外我們將 HZ 設定成 1000hz (每秒 1000 次)相當於 kernel 裡的 jiffies 以 ms 為單位,而原本的預設值是 250hz,因此免去了許多設定 timer 參數必須將 value 再乘上倍數的麻煩,也可以增加精準度。如果要乘上倍數,或許從 NCTUNS_ticks 這系列的 macro 來著手比較快速。

為了簡化測試,我也已經為了上面測試寫了一些簡單的 tools ,讓以後 maintainer 如果 porting 一個新版本可以先做一些基本簡單的測試,再開始跑 Demo Case

HEMiDEMi Technorati Del.icio.us MyShare個人書籤 Yahoo

0 Comments: