contributed by < pingsutw
>
lsmod
的輸出結果有一欄名為 Used by
,這是 "each module's use count and a list of referring modules",但如何實作出來呢?模組間的相依性和實際使用次數 (reference counting) 在 Linux 核心如何追蹤呢?fibdrv.c
存在著 DEFINE_MUTEX
, mutex_trylock
, mutex_init
, mutex_unlock
, mutex_destroy
等字樣,什麼場景中會需要呢?撰寫多執行緒的 userspace 程式來測試,觀察 Linux 核心模組若沒用到 mutex,到底會發生什麼問題執行 make check
遇到以下錯誤,因為當 fibonacci 數超過93時會 overflow,需對 fibdrv.c
進行改寫
添加一個特製的結構來處理大數運算,並添加其加法器
一開始沒有特別的運算加速,單存用新的結構 BigN
進行大數運算, 並對其進行效能分析
TODO: 在第一次計算的時間,明顯比前20個數慢很多很多,需找出原因
TODO: 需測量更多次實驗 () 並取 % 的信賴區間
fast doubling 這邊宣告三個變數來儲存加法器與乘法器的結果,這些變數可以移出 for 回去避免每次迴圈重新宣告,效能有提昇一些,後面持續優化。
用 sprintf 遇到以下錯誤,錯誤原因是 sprintf 沒有檢查 buffer 邊界,所以可能導致 overflow
解決辦法用 snprintf
改寫成以下
sysprog2020