2009年8月17日月曜日

debug_objects_early_init

前回のつづきです。

======
/*
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
lockdep_init();
debug_objects_early_init();
cgroup_init_early();
======

今回はdebug_objects_early_initを見ていきましょう。
実体はkernel/lib/debugobjects.cにあります。

======
void __init debug_objects_early_init(void)
{
int i;

for (i = 0; i < ODEBUG_HASH_SIZE; i++)
spin_lock_init(&obj_hash[i].lock);

for (i = 0; i < ODEBUG_POOL_SIZE; i++)
hlist_add_head(&obj_static_pool[i].node, &obj_pool);
}
======

debugobjects.cというファイルがどうもデバッグ用オブジェクトを管理するためのインフラを提供するためのもののようで、ここではその初期化をしているようです。初期化せずに使ってますとか、獲得したけど解放していません、といったことを検出するための仕組みのようです。
ちょっと自信ないけど。。。

0 件のコメント:

コメントを投稿