天天看點

Linux核心源碼分析(六)--start_kernel之lockdep_init

這個函數比較短,這裡直接貼出來。

void lockdep_init(void)

{

        int i;

        if (lockdep_initialized)

                return;

        for (i = 0; i < CLASSHASH_SIZE; i++)

                INIT_LIST_HEAD(classhash_table + i);

        for (i = 0; i < CHAINHASH_SIZE; i++)

                INIT_LIST_HEAD(chainhash_table + i);

        lockdep_initialized = 1;

}

可以看到函數中初始化了兩個哈希連結清單,分别是classhash_table和chainhash_table,主要是用來調試核心鎖的,比如檢測加鎖的順序看是否有發生死鎖的可能,具體的作用要看後面怎麼使用這兩個哈希連結清單。



繼續閱讀