- 论坛徽章:
- 0
|
觉得该函数在初始化kmem_cache_t的array_cache时有重复,能否请解释一下。
void __init kmem_cache_init(void)
{
…………
/* 5) resize the head arrays to their final sizes */
{
kmem_cache_t *cachep;
down(&cache_chain_sem);
list_for_each_entry(cachep, &cache_chain, next)
enable_cpucache(cachep);
up(&cache_chain_sem);
}
/* Done! */
g_cpucache_up = FULL;
/* Register a cpu startup notifier callback
* that initializes ac_data for all new cpus
*/
register_cpu_notifier(&cpucache_notifier);
…………
}
已经调用list_for_each_entry(cachep, &cache_chain, next)
enable_cpucache(cachep);
对各通用缓存的array_cache分配初始化了,然后又发出cpucache_notifier事件,该事件似乎又进行了一次同样的分配array_cache的工作,是怎么回事?
|
|